diff options
165 files changed, 655 insertions, 421 deletions
diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index e22163e7731..cf6e45c577d 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -309,9 +309,9 @@ OC.L10N.register( "Cancel" : "Abbrechen", "Import" : "Importieren", "Error while saving settings" : "Fehler beim Speichern der Einstellungen", - "Contact reset successfully" : "Kontakt erfolgreich zurückgesetzt", + "Contact reset successfully" : "Kontakt zurückgesetzt", "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts", - "Contact imported successfully" : "Kontakt erfolgreich importiert", + "Contact imported successfully" : "Kontakt importiert", "Error while importing contact" : "Fehler beim Import des Kontakts", "Example Content" : "Beispielinhalt", "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.", diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index 02a0a5707ab..6fceefcf9a7 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -307,9 +307,9 @@ "Cancel" : "Abbrechen", "Import" : "Importieren", "Error while saving settings" : "Fehler beim Speichern der Einstellungen", - "Contact reset successfully" : "Kontakt erfolgreich zurückgesetzt", + "Contact reset successfully" : "Kontakt zurückgesetzt", "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts", - "Contact imported successfully" : "Kontakt erfolgreich importiert", + "Contact imported successfully" : "Kontakt importiert", "Error while importing contact" : "Fehler beim Import des Kontakts", "Example Content" : "Beispielinhalt", "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.", diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js index d32f6e03d33..d75e6ab3a18 100644 --- a/apps/encryption/l10n/de.js +++ b/apps/encryption/l10n/de.js @@ -4,7 +4,7 @@ OC.L10N.register( "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", + "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde aktiviert", "Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!", "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!", diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json index 8b47d1d9d94..a2559fdf4f3 100644 --- a/apps/encryption/l10n/de.json +++ b/apps/encryption/l10n/de.json @@ -2,7 +2,7 @@ "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", + "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde aktiviert", "Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!", "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!", diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js index 92226e19cf3..94d2501a80c 100644 --- a/apps/encryption/l10n/de_DE.js +++ b/apps/encryption/l10n/de_DE.js @@ -4,9 +4,9 @@ OC.L10N.register( "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde aktiviert.", "Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde deaktiviert.", "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", "Missing parameters" : "Fehlende Parameter", "Please provide the old recovery password" : "Bitte das alte Wiederherstellungspasswort eingeben", diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json index 21c6acc753c..7add3710d66 100644 --- a/apps/encryption/l10n/de_DE.json +++ b/apps/encryption/l10n/de_DE.json @@ -2,9 +2,9 @@ "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde aktiviert.", "Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde deaktiviert.", "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", "Missing parameters" : "Fehlende Parameter", "Please provide the old recovery password" : "Bitte das alte Wiederherstellungspasswort eingeben", diff --git a/apps/encryption/lib/Command/FixEncryptedVersion.php b/apps/encryption/lib/Command/FixEncryptedVersion.php index 6635bb6cba9..462e3a5cc2a 100644 --- a/apps/encryption/lib/Command/FixEncryptedVersion.php +++ b/apps/encryption/lib/Command/FixEncryptedVersion.php @@ -12,6 +12,7 @@ use OC\Files\Storage\Wrapper\Encryption; use OC\Files\View; use OC\ServerNotAvailableException; use OCA\Encryption\Util; +use OCP\Encryption\Exceptions\InvalidHeaderException; use OCP\Files\IRootFolder; use OCP\HintException; use OCP\IConfig; @@ -196,7 +197,7 @@ class FixEncryptedVersion extends Command { \fclose($handle); return true; - } catch (ServerNotAvailableException $e) { + } catch (ServerNotAvailableException|InvalidHeaderException $e) { // not a "bad signature" error and likely "legacy cipher" exception // this could mean that the file is maybe not encrypted but the encrypted version is set if (!$this->supportLegacy && $ignoreCorrectEncVersionCall === true) { diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js index 25b68d9c001..40ad6b5be23 100644 --- a/apps/federatedfilesharing/l10n/de_DE.js +++ b/apps/federatedfilesharing/l10n/de_DE.js @@ -69,7 +69,7 @@ OC.L10N.register( "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", - "Twitter" : "Twitter", + "Twitter" : "X", "Diaspora" : "Diaspora" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json index da17581170c..c6cdd274032 100644 --- a/apps/federatedfilesharing/l10n/de_DE.json +++ b/apps/federatedfilesharing/l10n/de_DE.json @@ -67,7 +67,7 @@ "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", - "Twitter" : "Twitter", + "Twitter" : "X", "Diaspora" : "Diaspora" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/pt_BR.js b/apps/federatedfilesharing/l10n/pt_BR.js index 2f4a3746efd..9963003678f 100644 --- a/apps/federatedfilesharing/l10n/pt_BR.js +++ b/apps/federatedfilesharing/l10n/pt_BR.js @@ -29,7 +29,7 @@ OC.L10N.register( "Enable data upload" : "Ativar upload de dados", "Confirm querying lookup server" : "Confirmar a consulta ao servidor de pesquisa", "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Quando ativada, a entrada de pesquisa ao criar compartilhamentos será enviada para um sistema externo que fornece um catálogo de endereços público e global.", - "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para recuperar o ID da nuvem federada para facilitar o compartilhamento federado.", + "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para obter o ID de nuvem federada para facilitar o compartilhamento federado.", "Moreover, email addresses of users might be sent to that system in order to verify them." : "Além disso, os endereços de e-mail dos usuários podem ser enviados para esse sistema a fim de verificá-los.", "Disable querying" : "Desativar consulta", "Enable querying" : "Ativar consulta", @@ -51,7 +51,7 @@ OC.L10N.register( "Clipboard not available. Please copy the cloud ID manually." : "Área de transferência indisponível. Copie o ID de Nuvem manualmente.", "Copied!" : "Copiado!", "Federated Cloud" : "Nuvem Federada", - "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de nuvem federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com", + "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de Nuvem Federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com", "Your Federated Cloud ID" : "Seu ID de Nuvem Federada", "Share it so your friends can share files with you:" : "Compartilhe para que seus amigos possam compartilhar arquivos com você:", "Facebook" : "Facebook", @@ -68,7 +68,7 @@ OC.L10N.register( "Remote share password" : "Senha do compartilhamento remoto", "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado", "Clipboard is not available" : "A área de transferência não está disponível", - "Your Federated Cloud ID:" : "Sua ID de Nuvem Federada:", + "Your Federated Cloud ID:" : "Seu ID de Nuvem Federada:", "Twitter" : "Twitter", "Diaspora" : "Diaspora" }, diff --git a/apps/federatedfilesharing/l10n/pt_BR.json b/apps/federatedfilesharing/l10n/pt_BR.json index a95a7baa35b..916d02b92ad 100644 --- a/apps/federatedfilesharing/l10n/pt_BR.json +++ b/apps/federatedfilesharing/l10n/pt_BR.json @@ -27,7 +27,7 @@ "Enable data upload" : "Ativar upload de dados", "Confirm querying lookup server" : "Confirmar a consulta ao servidor de pesquisa", "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Quando ativada, a entrada de pesquisa ao criar compartilhamentos será enviada para um sistema externo que fornece um catálogo de endereços público e global.", - "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para recuperar o ID da nuvem federada para facilitar o compartilhamento federado.", + "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para obter o ID de nuvem federada para facilitar o compartilhamento federado.", "Moreover, email addresses of users might be sent to that system in order to verify them." : "Além disso, os endereços de e-mail dos usuários podem ser enviados para esse sistema a fim de verificá-los.", "Disable querying" : "Desativar consulta", "Enable querying" : "Ativar consulta", @@ -49,7 +49,7 @@ "Clipboard not available. Please copy the cloud ID manually." : "Área de transferência indisponível. Copie o ID de Nuvem manualmente.", "Copied!" : "Copiado!", "Federated Cloud" : "Nuvem Federada", - "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de nuvem federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com", + "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de Nuvem Federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com", "Your Federated Cloud ID" : "Seu ID de Nuvem Federada", "Share it so your friends can share files with you:" : "Compartilhe para que seus amigos possam compartilhar arquivos com você:", "Facebook" : "Facebook", @@ -66,7 +66,7 @@ "Remote share password" : "Senha do compartilhamento remoto", "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado", "Clipboard is not available" : "A área de transferência não está disponível", - "Your Federated Cloud ID:" : "Sua ID de Nuvem Federada:", + "Your Federated Cloud ID:" : "Seu ID de Nuvem Federada:", "Twitter" : "Twitter", "Diaspora" : "Diaspora" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/apps/federation/l10n/de.js b/apps/federation/l10n/de.js index aa6591c4e75..070c7e76e92 100644 --- a/apps/federation/l10n/de.js +++ b/apps/federation/l10n/de.js @@ -6,7 +6,7 @@ OC.L10N.register( "Could not remove server" : "Server konnte nicht entfernt werden", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Server.", "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", - "Could not add server" : "Konnte Server nicht hinzufügen", + "Could not add server" : "Server konnte nicht hinzugefügt werden", "Trusted servers" : "Vertrauenswürdige Server", "Federation" : "Federation", "Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.", diff --git a/apps/federation/l10n/de.json b/apps/federation/l10n/de.json index 80129b204c9..ec1118bce91 100644 --- a/apps/federation/l10n/de.json +++ b/apps/federation/l10n/de.json @@ -4,7 +4,7 @@ "Could not remove server" : "Server konnte nicht entfernt werden", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Server.", "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", - "Could not add server" : "Konnte Server nicht hinzufügen", + "Could not add server" : "Server konnte nicht hinzugefügt werden", "Trusted servers" : "Vertrauenswürdige Server", "Federation" : "Federation", "Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.", diff --git a/apps/federation/l10n/de_DE.js b/apps/federation/l10n/de_DE.js index 4df9825a354..efb22f90bb5 100644 --- a/apps/federation/l10n/de_DE.js +++ b/apps/federation/l10n/de_DE.js @@ -6,7 +6,7 @@ OC.L10N.register( "Could not remove server" : "Server konnte nicht entfernt werden", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", - "Could not add server" : "Konnte Server nicht hinzufügen", + "Could not add server" : "Server konnte nicht hinzugefügt werden", "Trusted servers" : "Vertrauenswürdige Server", "Federation" : "Federation", "Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.", diff --git a/apps/federation/l10n/de_DE.json b/apps/federation/l10n/de_DE.json index 743a5af0ee5..96f5fb099d3 100644 --- a/apps/federation/l10n/de_DE.json +++ b/apps/federation/l10n/de_DE.json @@ -4,7 +4,7 @@ "Could not remove server" : "Server konnte nicht entfernt werden", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", - "Could not add server" : "Konnte Server nicht hinzufügen", + "Could not add server" : "Server konnte nicht hinzugefügt werden", "Trusted servers" : "Vertrauenswürdige Server", "Federation" : "Federation", "Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index 0d9ab61cef5..acf20a0af79 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s", "Files compatibility" : "Kompatibilita souborů", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.", "Enforce Windows compatibility" : "Vynutit kompatibilitu s Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index 029d7b5cd5c..fec4ee94d64 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s", "Files compatibility" : "Kompatibilita souborů", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.", "Enforce Windows compatibility" : "Vynutit kompatibilitu s Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index f760c2f654d..465a4113512 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s", "Files compatibility" : "Dateikompatibilität", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.", "Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.", @@ -111,7 +110,7 @@ OC.L10N.register( "Name" : "Name", "Size" : "Größe", "\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen", - "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt", "\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", @@ -169,7 +168,7 @@ OC.L10N.register( "Error during upload: {message}" : "Fehler beim Hochladen: {message}", "Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}", "Unknown error during upload" : "unbekannte Fehler während des Hochladens", - "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt", "Loading current folder" : "Lade aktuellen Ordner", "Retry" : "Wiederholen", "No files in here" : "Keine Dateien vorhanden", @@ -240,7 +239,7 @@ OC.L10N.register( "All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden", "One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}", "_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"], - "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"], + "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"], "Files successfully converted" : "Dateien konvertiert", "Failed to convert files" : "Dateien konnten nicht konvertiert werden", "Converting file …" : "Datei wird konvertiert …", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 58d930e97a2..2df91e216b1 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s", "Files compatibility" : "Dateikompatibilität", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.", "Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.", @@ -109,7 +108,7 @@ "Name" : "Name", "Size" : "Größe", "\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen", - "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt", "\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", @@ -167,7 +166,7 @@ "Error during upload: {message}" : "Fehler beim Hochladen: {message}", "Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}", "Unknown error during upload" : "unbekannte Fehler während des Hochladens", - "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt", "Loading current folder" : "Lade aktuellen Ordner", "Retry" : "Wiederholen", "No files in here" : "Keine Dateien vorhanden", @@ -238,7 +237,7 @@ "All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden", "One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}", "_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"], - "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"], + "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"], "Files successfully converted" : "Dateien konvertiert", "Failed to convert files" : "Dateien konnten nicht konvertiert werden", "Converting file …" : "Datei wird konvertiert …", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 76d6be8bf80..5483daa286f 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s", "Files compatibility" : "Dateikompatibilität", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.", "Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.", @@ -111,7 +110,7 @@ OC.L10N.register( "Name" : "Name", "Size" : "Größe", "\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen", - "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt", "\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", @@ -169,7 +168,7 @@ OC.L10N.register( "Error during upload: {message}" : "Fehler beim Hochladen: {message}", "Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}", "Unknown error during upload" : "Unbekannter Fehler beim Hochladen", - "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt", "Loading current folder" : "Lade aktuellen Ordner", "Retry" : "Wiederholen", "No files in here" : "Keine Dateien vorhanden", @@ -240,7 +239,7 @@ OC.L10N.register( "All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden", "One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}", "_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"], - "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"], + "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"], "Files successfully converted" : "Dateien konvertiert", "Failed to convert files" : "Dateien konnten nicht konvertiert werden", "Converting file …" : "Datei wird konvertiert …", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 3fb15347da5..779131af5e1 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s", "Files compatibility" : "Dateikompatibilität", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.", "Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.", @@ -109,7 +108,7 @@ "Name" : "Name", "Size" : "Größe", "\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen", - "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt", "\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", @@ -167,7 +166,7 @@ "Error during upload: {message}" : "Fehler beim Hochladen: {message}", "Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}", "Unknown error during upload" : "Unbekannter Fehler beim Hochladen", - "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt", + "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt", "Loading current folder" : "Lade aktuellen Ordner", "Retry" : "Wiederholen", "No files in here" : "Keine Dateien vorhanden", @@ -238,7 +237,7 @@ "All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden", "One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}", "_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"], - "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"], + "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"], "Files successfully converted" : "Dateien konvertiert", "Failed to convert files" : "Dateien konnten nicht konvertiert werden", "Converting file …" : "Datei wird konvertiert …", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index c9c97b918ad..2058bd2f2fc 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -43,6 +43,8 @@ OC.L10N.register( "Files" : "Files", "A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>", "A favorite file or folder has been <strong>changed</strong>" : "A favourite file or folder has been <strong>changed</strong>", + "%1$s (renamed)" : "%1$s (renamed)", + "renamed file" : "renamed file", "Failed to authorize" : "Failed to authorize", "Invalid folder path" : "Invalid folder path", "Folder not found" : "Folder not found", @@ -71,6 +73,7 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s", "Files compatibility" : "Files compatibility", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.", "Enforce Windows compatibility" : "Enforce Windows compatibility", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.", "File Management" : "File Management", @@ -328,6 +331,7 @@ OC.L10N.register( "Unexpected error: {error}" : "Unexpected error: {error}", "_%n file_::_%n files_" : ["%n file","%n files"], "_%n folder_::_%n folders_" : ["%n folder","%n folders"], + "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"], "Filename must not be empty." : "Filename must not be empty.", "\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.", "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 7c4b5e470fa..2d293ebf557 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -41,6 +41,8 @@ "Files" : "Files", "A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>", "A favorite file or folder has been <strong>changed</strong>" : "A favourite file or folder has been <strong>changed</strong>", + "%1$s (renamed)" : "%1$s (renamed)", + "renamed file" : "renamed file", "Failed to authorize" : "Failed to authorize", "Invalid folder path" : "Invalid folder path", "Folder not found" : "Folder not found", @@ -69,6 +71,7 @@ "Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s", "Files compatibility" : "Files compatibility", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.", "Enforce Windows compatibility" : "Enforce Windows compatibility", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.", "File Management" : "File Management", @@ -326,6 +329,7 @@ "Unexpected error: {error}" : "Unexpected error: {error}", "_%n file_::_%n files_" : ["%n file","%n files"], "_%n folder_::_%n folders_" : ["%n folder","%n folders"], + "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"], "Filename must not be empty." : "Filename must not be empty.", "\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.", "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 54e89b8c5e6..edb4acfd4f5 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s", "Files compatibility" : "Compatibilidad de archivos", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.", "Enforce Windows compatibility" : "Forzar la compatibilidad con Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 79fb844a32c..d9940c3968d 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s", "Files compatibility" : "Compatibilidad de archivos", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.", "Enforce Windows compatibility" : "Forzar la compatibilidad con Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.", diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index 246a7f7b064..50a02b2ad26 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s", "Files compatibility" : "Failide ühilduvus", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.", "Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index 00ffe074653..d0942feda0a 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s", "Files compatibility" : "Failide ühilduvus", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.", "Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index a06c4433bdc..88f77ae9d76 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s", "Files compatibility" : "Zgodność plików", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejących plików nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.", "Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 2705ef5eea4..0fc336bd1bb 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s", "Files compatibility" : "Zgodność plików", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejących plików nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.", "Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 40c07434541..a297cdc10b2 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s", "Files compatibility" : "Compatibilidade de arquivos", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar essa configuração. Consulte a documentação sobre o comando occ.", "Enforce Windows compatibility" : "Forçar compatibilidade com Windows ", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.", @@ -313,7 +312,7 @@ OC.L10N.register( "New template folder" : "Nova pasta de modelo", "In folder" : "Na pasta", "Search in folder: {folder}" : "Pesquisar na pasta: {folder}", - "One of the dropped files could not be processed" : "Um dos arquivos descartados não pôde ser processado", + "One of the dropped files could not be processed" : "Um dos arquivos depositados não pôde ser processado", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Seu navegador não oferece suporte à API Filesystem. Os diretórios não serão carregados", "No files to upload" : "Não há arquivos para enviar", "Unable to create the directory {directory}" : "Não foi possível criar o diretório {directory}", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 8bff756baeb..579d333dfbf 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s", "Files compatibility" : "Compatibilidade de arquivos", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar essa configuração. Consulte a documentação sobre o comando occ.", "Enforce Windows compatibility" : "Forçar compatibilidade com Windows ", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.", @@ -311,7 +310,7 @@ "New template folder" : "Nova pasta de modelo", "In folder" : "Na pasta", "Search in folder: {folder}" : "Pesquisar na pasta: {folder}", - "One of the dropped files could not be processed" : "Um dos arquivos descartados não pôde ser processado", + "One of the dropped files could not be processed" : "Um dos arquivos depositados não pôde ser processado", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Seu navegador não oferece suporte à API Filesystem. Os diretórios não serão carregados", "No files to upload" : "Não há arquivos para enviar", "Unable to create the directory {directory}" : "Não foi possível criar o diretório {directory}", diff --git a/apps/files/l10n/sc.js b/apps/files/l10n/sc.js index 5fe5f9b3545..ce6a33178ab 100644 --- a/apps/files/l10n/sc.js +++ b/apps/files/l10n/sc.js @@ -174,7 +174,11 @@ OC.L10N.register( "Created new folder \"{name}\"" : "Cartella noa \"{name}\" creada", "Unable to initialize the templates directory" : "Non faghet a initzializare sa cartella de is modellos", "Templates" : "Modellos", + "No files to upload" : "Perunu archìviu de carrigare", + "Some files could not be uploaded" : "No at fatu a carrigare unos cantos archìvios", + "Files uploaded successfully" : "Archìvios carrigados", "Some files could not be moved" : "No at fatu a tramudare carchi archìviu", + "Upload cancelled" : "Carrigamentu annulladu", "This operation is forbidden" : "Custa operatzione no est permìtida", "This directory is unavailable, please check the logs or contact the administrator" : "Custa cartella no est a disponimentu, controlla is informes o cuntata s'amministratzione", "Storage is temporarily not available" : "S'archiviatzione immoe no est a disponimentu", @@ -184,6 +188,7 @@ OC.L10N.register( "Files and folders you mark as favorite will show up here" : "Is archìvios e is cartellas chi marcas comente preferidos ant a aparèssere inoghe", "All files" : "Totu is archìvios", "List of your files and folders." : "Lista de is cartellas e is archìvios tuos.", + "All folders" : "Totu is cartellas", "Personal files" : "Archìvios personales", "No personal files found" : "Perunu archìviu personale agatadu", "Recent" : "Reghente", @@ -271,7 +276,7 @@ OC.L10N.register( "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Preferidu", "Copy direct link (only works for people who have access to this file/folder)" : "Còpia su ligòngiu diretu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)", - "Upload file" : "Carriga archìviu", + "Upload file" : "Càrriga archìviu", "Not favorited" : "Non preferidu", "An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas", "Storage informations" : "Informatziones de s'archiviatzione", @@ -288,6 +293,7 @@ OC.L10N.register( "List of favorites files and folders." : "Lista de cartellas e de archìvios preferidos.", "Personal Files" : "Archìvios personales", "Text file" : "Archìviu de testu", - "New text file.txt" : "Archìviu de testu .txt nou" + "New text file.txt" : "Archìviu de testu .txt nou", + "Filter filenames…" : "Filtra nùmenes de archìviu..." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json index 93e34ec62fe..b62a8bfe963 100644 --- a/apps/files/l10n/sc.json +++ b/apps/files/l10n/sc.json @@ -172,7 +172,11 @@ "Created new folder \"{name}\"" : "Cartella noa \"{name}\" creada", "Unable to initialize the templates directory" : "Non faghet a initzializare sa cartella de is modellos", "Templates" : "Modellos", + "No files to upload" : "Perunu archìviu de carrigare", + "Some files could not be uploaded" : "No at fatu a carrigare unos cantos archìvios", + "Files uploaded successfully" : "Archìvios carrigados", "Some files could not be moved" : "No at fatu a tramudare carchi archìviu", + "Upload cancelled" : "Carrigamentu annulladu", "This operation is forbidden" : "Custa operatzione no est permìtida", "This directory is unavailable, please check the logs or contact the administrator" : "Custa cartella no est a disponimentu, controlla is informes o cuntata s'amministratzione", "Storage is temporarily not available" : "S'archiviatzione immoe no est a disponimentu", @@ -182,6 +186,7 @@ "Files and folders you mark as favorite will show up here" : "Is archìvios e is cartellas chi marcas comente preferidos ant a aparèssere inoghe", "All files" : "Totu is archìvios", "List of your files and folders." : "Lista de is cartellas e is archìvios tuos.", + "All folders" : "Totu is cartellas", "Personal files" : "Archìvios personales", "No personal files found" : "Perunu archìviu personale agatadu", "Recent" : "Reghente", @@ -269,7 +274,7 @@ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Preferidu", "Copy direct link (only works for people who have access to this file/folder)" : "Còpia su ligòngiu diretu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)", - "Upload file" : "Carriga archìviu", + "Upload file" : "Càrriga archìviu", "Not favorited" : "Non preferidu", "An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas", "Storage informations" : "Informatziones de s'archiviatzione", @@ -286,6 +291,7 @@ "List of favorites files and folders." : "Lista de cartellas e de archìvios preferidos.", "Personal Files" : "Archìvios personales", "Text file" : "Archìviu de testu", - "New text file.txt" : "Archìviu de testu .txt nou" + "New text file.txt" : "Archìviu de testu .txt nou", + "Filter filenames…" : "Filtra nùmenes de archìviu..." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index 94e6e94c5a4..5be69357590 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s", "Files compatibility" : "Компатибилност фајлова", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.", "Enforce Windows compatibility" : "Форсирај Windows компатибилност", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index 280c8cc2afd..52c41a7612e 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s", "Files compatibility" : "Компатибилност фајлова", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.", "Enforce Windows compatibility" : "Форсирај Windows компатибилност", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index e2a51702f92..1eac3304ab0 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -43,6 +43,8 @@ OC.L10N.register( "Files" : "Filer", "A file or folder has been <strong>changed</strong>" : "En ny fil eller mapp har blivit <strong>ändrad</strong>", "A favorite file or folder has been <strong>changed</strong>" : "En favorit-fil eller mapp har blivit <strong>ändrad</strong>", + "%1$s (renamed)" : "%1$s (omdöpt)", + "renamed file" : "omdöpt fil", "Failed to authorize" : "Det gick inte att auktorisera", "Invalid folder path" : "Ogiltig mappsökväg", "Folder not found" : "Mappen hittades inte", @@ -71,6 +73,7 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Överförd från %1$s på %2$s", "Files compatibility" : "Filkompatibilitet", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Tillåt att begränsa filnamn för att säkerställa att filer kan synkroniseras med alla klienter. Som standard är alla filnamn som är giltiga på POSIX (t.ex. Linux eller macOS) tillåtna.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Det är också möjligt att migrera filer automatiskt efter att den här inställningen har aktiverats. Se dokumentationen om kommandot occ för mer information.", "Enforce Windows compatibility" : "Tvinga Windows-kompatibilitet", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Detta kommer att blockera filnamn som inte är giltiga på Windows-system, som att använda reserverade namn eller specialtecken. Men detta kommer inte att framtvinga kompatibiliteten för skiftlägeskänslighet.", "File Management" : "Filhantering", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 1be129fa66c..27768e830bb 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -41,6 +41,8 @@ "Files" : "Filer", "A file or folder has been <strong>changed</strong>" : "En ny fil eller mapp har blivit <strong>ändrad</strong>", "A favorite file or folder has been <strong>changed</strong>" : "En favorit-fil eller mapp har blivit <strong>ändrad</strong>", + "%1$s (renamed)" : "%1$s (omdöpt)", + "renamed file" : "omdöpt fil", "Failed to authorize" : "Det gick inte att auktorisera", "Invalid folder path" : "Ogiltig mappsökväg", "Folder not found" : "Mappen hittades inte", @@ -69,6 +71,7 @@ "Transferred from %1$s on %2$s" : "Överförd från %1$s på %2$s", "Files compatibility" : "Filkompatibilitet", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Tillåt att begränsa filnamn för att säkerställa att filer kan synkroniseras med alla klienter. Som standard är alla filnamn som är giltiga på POSIX (t.ex. Linux eller macOS) tillåtna.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Det är också möjligt att migrera filer automatiskt efter att den här inställningen har aktiverats. Se dokumentationen om kommandot occ för mer information.", "Enforce Windows compatibility" : "Tvinga Windows-kompatibilitet", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Detta kommer att blockera filnamn som inte är giltiga på Windows-system, som att använda reserverade namn eller specialtecken. Men detta kommer inte att framtvinga kompatibiliteten för skiftlägeskänslighet.", "File Management" : "Filhantering", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 17571dc849b..003a12b2320 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "从 %1$s 转移至 %2$s", "Files compatibility" : "文件兼容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允许限制文件名称以确保文件可以与所有客户端同步。默认状态下,所有POSIX(例如 Linux 或 macOS)系统有效的文件名都是被允许的。", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "启用此设置后,也可以自动迁移文件,请参阅有关 occ 命令的文档。", "Enforce Windows compatibility" : "强制 Windows 兼容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "这将阻止在 Windows 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index e872bd42873..aab018cfab8 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "从 %1$s 转移至 %2$s", "Files compatibility" : "文件兼容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允许限制文件名称以确保文件可以与所有客户端同步。默认状态下,所有POSIX(例如 Linux 或 macOS)系统有效的文件名都是被允许的。", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "启用此设置后,也可以自动迁移文件,请参阅有关 occ 命令的文档。", "Enforce Windows compatibility" : "强制 Windows 兼容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "这将阻止在 Windows 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index 0a634d1de70..4b77fd52159 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -43,6 +43,8 @@ OC.L10N.register( "Files" : "檔案", "A file or folder has been <strong>changed</strong>" : "檔案或資料夾有所<strong>更改</strong>", "A favorite file or folder has been <strong>changed</strong>" : "收藏的檔案或資料夾有所<strong>更改</strong>", + "%1$s (renamed)" : "%1$s(已重新命名)", + "renamed file" : "已重新命名的檔案", "Failed to authorize" : "無法授權", "Invalid folder path" : "無效的資料夾路徑", "Folder not found" : "找不到資料夾", @@ -71,6 +73,7 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移", "Files compatibility" : "檔案兼容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限製檔案名稱以確保檔案可以與所有客戶端同步。默認情況下,允許 POSIX(例如 Linux 或 macOS)上有效的所有檔案名稱。", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,還可以自動遷移檔案,請參考有關 occ 指令的說明書。", "Enforce Windows compatibility" : "實施 Windows 兼容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這將阻止在 Windows 系統上無效的檔案名,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的兼容性。", "File Management" : "檔案管理", @@ -328,6 +331,7 @@ OC.L10N.register( "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], "_%n folder_::_%n folders_" : ["%n 個資料夾"], + "_%n hidden_::_%n hidden_" : ["%n 個隱藏"], "Filename must not be empty." : "檔案名稱不能為空。", "\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」", "\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。", diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index 04ff1f24cea..fa74cbe8827 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -41,6 +41,8 @@ "Files" : "檔案", "A file or folder has been <strong>changed</strong>" : "檔案或資料夾有所<strong>更改</strong>", "A favorite file or folder has been <strong>changed</strong>" : "收藏的檔案或資料夾有所<strong>更改</strong>", + "%1$s (renamed)" : "%1$s(已重新命名)", + "renamed file" : "已重新命名的檔案", "Failed to authorize" : "無法授權", "Invalid folder path" : "無效的資料夾路徑", "Folder not found" : "找不到資料夾", @@ -69,6 +71,7 @@ "Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移", "Files compatibility" : "檔案兼容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限製檔案名稱以確保檔案可以與所有客戶端同步。默認情況下,允許 POSIX(例如 Linux 或 macOS)上有效的所有檔案名稱。", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,還可以自動遷移檔案,請參考有關 occ 指令的說明書。", "Enforce Windows compatibility" : "實施 Windows 兼容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這將阻止在 Windows 系統上無效的檔案名,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的兼容性。", "File Management" : "檔案管理", @@ -326,6 +329,7 @@ "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], "_%n folder_::_%n folders_" : ["%n 個資料夾"], + "_%n hidden_::_%n hidden_" : ["%n 個隱藏"], "Filename must not be empty." : "檔案名稱不能為空。", "\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」", "\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 9ee3f40b41d..ed24a6b2299 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -73,7 +73,6 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移", "Files compatibility" : "檔案相容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限制檔案名稱以確保檔案可以與所有客戶端同步。預設情況下,允許 POSIX(例如 Linux 或 macOS)上所有有效的檔案名稱。", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,也可以自動遷移檔案,詳情請參閱關於 occ 命令的文件。", "Enforce Windows compatibility" : "強制 Windows 相容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這會封鎖在 Windows 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 4814a6d91af..84ac29f65b1 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -71,7 +71,6 @@ "Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移", "Files compatibility" : "檔案相容性", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限制檔案名稱以確保檔案可以與所有客戶端同步。預設情況下,允許 POSIX(例如 Linux 或 macOS)上所有有效的檔案名稱。", - "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。", "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,也可以自動遷移檔案,詳情請參閱關於 occ 命令的文件。", "Enforce Windows compatibility" : "強制 Windows 相容性", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這會封鎖在 Windows 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。", diff --git a/apps/files/lib/Settings/DeclarativeAdminSettings.php b/apps/files/lib/Settings/DeclarativeAdminSettings.php index 2f363f05958..bbf97cc4d32 100644 --- a/apps/files/lib/Settings/DeclarativeAdminSettings.php +++ b/apps/files/lib/Settings/DeclarativeAdminSettings.php @@ -49,7 +49,7 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers { 'doc_url' => $this->urlGenerator->linkToDocs('admin-windows-compatible-filenames'), 'description' => ( $this->l->t('Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.') - . "\n" . $this->l->t('After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.') + . "\n" . $this->l->t('After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.') . "\n" . $this->l->t('It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.') ), diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index c70905522af..719065c6e6a 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -106,7 +106,7 @@ OC.L10N.register( "Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}", "New configuration successfully saved" : "Neue Konfiguration gespeichert", "Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben", - "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt", + "Credentials successfully set" : "Anmeldeinformationen festgelegt", "Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}", "Checking storage …" : "Prüfe Speicher …", "There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.", diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index f9a162bd1ad..d6448798ae4 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -104,7 +104,7 @@ "Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}", "New configuration successfully saved" : "Neue Konfiguration gespeichert", "Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben", - "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt", + "Credentials successfully set" : "Anmeldeinformationen festgelegt", "Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}", "Checking storage …" : "Prüfe Speicher …", "There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.", diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js index 900a3728b2f..d0541618efe 100644 --- a/apps/files_external/l10n/de_DE.js +++ b/apps/files_external/l10n/de_DE.js @@ -106,7 +106,7 @@ OC.L10N.register( "Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}", "New configuration successfully saved" : "Neue Konfiguration gespeichert", "Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben", - "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt", + "Credentials successfully set" : "Anmeldeinformationen festgelegt", "Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}", "Checking storage …" : "Prüfe Speicher…", "There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.", diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json index 4e16f7b7de7..e5fc8adb012 100644 --- a/apps/files_external/l10n/de_DE.json +++ b/apps/files_external/l10n/de_DE.json @@ -104,7 +104,7 @@ "Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}", "New configuration successfully saved" : "Neue Konfiguration gespeichert", "Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben", - "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt", + "Credentials successfully set" : "Anmeldeinformationen festgelegt", "Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}", "Checking storage …" : "Prüfe Speicher…", "There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.", diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index a71331766d4..e80570f14ba 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -288,7 +288,6 @@ class Swift extends Common { public function stat(string $path): array|false { $path = $this->normalizePath($path); - if ($path === '.') { $path = ''; } elseif ($this->is_dir($path)) { @@ -308,22 +307,23 @@ class Swift extends Common { return false; } - $dateTime = $object->lastModified ? \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified) : false; - $mtime = $dateTime ? $dateTime->getTimestamp() : null; - $objectMetadata = $object->getMetadata(); - if (isset($objectMetadata['timestamp'])) { - $mtime = $objectMetadata['timestamp']; + $mtime = null; + if (!empty($object->lastModified)) { + $dateTime = \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified); + if ($dateTime !== false) { + $mtime = $dateTime->getTimestamp(); + } } - if (!empty($mtime)) { - $mtime = floor($mtime); + if (is_numeric($object->getMetadata()['timestamp'] ?? null)) { + $mtime = (float)$object->getMetadata()['timestamp']; } - $stat = []; - $stat['size'] = (int)$object->contentLength; - $stat['mtime'] = $mtime; - $stat['atime'] = time(); - return $stat; + return [ + 'size' => (int)$object->contentLength, + 'mtime' => isset($mtime) ? (int)floor($mtime) : null, + 'atime' => time(), + ]; } public function filetype(string $path) { diff --git a/apps/files_reminders/l10n/en_GB.js b/apps/files_reminders/l10n/en_GB.js index 39e216c1089..84d29ac5b18 100644 --- a/apps/files_reminders/l10n/en_GB.js +++ b/apps/files_reminders/l10n/en_GB.js @@ -6,6 +6,8 @@ OC.L10N.register( "View file" : "View file", "View folder" : "View folder", "Files reminder" : "Files reminder", + "The \"files_reminders\" app can work properly." : "The \"files_reminders\" app can work properly.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder.", "Set file reminders" : "Set file reminders", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.", "Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"", diff --git a/apps/files_reminders/l10n/en_GB.json b/apps/files_reminders/l10n/en_GB.json index ba7020cb8a0..495be5f0bd9 100644 --- a/apps/files_reminders/l10n/en_GB.json +++ b/apps/files_reminders/l10n/en_GB.json @@ -4,6 +4,8 @@ "View file" : "View file", "View folder" : "View folder", "Files reminder" : "Files reminder", + "The \"files_reminders\" app can work properly." : "The \"files_reminders\" app can work properly.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder.", "Set file reminders" : "Set file reminders", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.", "Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"", diff --git a/apps/files_reminders/l10n/zh_HK.js b/apps/files_reminders/l10n/zh_HK.js index 2651cac8cdd..4bd677a177e 100644 --- a/apps/files_reminders/l10n/zh_HK.js +++ b/apps/files_reminders/l10n/zh_HK.js @@ -6,6 +6,8 @@ OC.L10N.register( "View file" : "檢視檔案", "View folder" : "檢視資料夾", "Files reminder" : "檔案提醒", + "The \"files_reminders\" app can work properly." : "「files_reminders」應用程式可以正常運作。", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "「files_reminder」應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。", "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", @@ -28,6 +30,8 @@ OC.L10N.register( "This weekend" : "本週末", "Set reminder for this weekend" : "設定本週末的提醒", "Next week" : "下星期", - "Set reminder for next week" : "設定下星期的提醒" + "Set reminder for next week" : "設定下星期的提醒", + "This files_reminder can work properly." : "此 files_reminder 可以正常運作。", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminder 應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。" }, "nplurals=1; plural=0;"); diff --git a/apps/files_reminders/l10n/zh_HK.json b/apps/files_reminders/l10n/zh_HK.json index d973c4eba37..676c4164157 100644 --- a/apps/files_reminders/l10n/zh_HK.json +++ b/apps/files_reminders/l10n/zh_HK.json @@ -4,6 +4,8 @@ "View file" : "檢視檔案", "View folder" : "檢視資料夾", "Files reminder" : "檔案提醒", + "The \"files_reminders\" app can work properly." : "「files_reminders」應用程式可以正常運作。", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "「files_reminder」應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。", "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", @@ -26,6 +28,8 @@ "This weekend" : "本週末", "Set reminder for this weekend" : "設定本週末的提醒", "Next week" : "下星期", - "Set reminder for next week" : "設定下星期的提醒" + "Set reminder for next week" : "設定下星期的提醒", + "This files_reminder can work properly." : "此 files_reminder 可以正常運作。", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminder 應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js index d9a43acd68d..f1f2b87e7e4 100644 --- a/apps/files_sharing/l10n/ar.js +++ b/apps/files_sharing/l10n/ar.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.", "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق", - "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة", "Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات", "Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}", "this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة", "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها", "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"], - "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"] + "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"], + "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة" }, "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json index b195289fec3..e992b33fcb7 100644 --- a/apps/files_sharing/l10n/ar.json +++ b/apps/files_sharing/l10n/ar.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.", "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق", - "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة", "Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات", "Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}", "this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.", @@ -420,6 +419,7 @@ "Share expire date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة", "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها", "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"], - "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"] + "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"], + "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة" },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js index 48bcbfc0d8a..b2d3d998762 100644 --- a/apps/files_sharing/l10n/ca.js +++ b/apps/files_sharing/l10n/ca.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.", "Share with accounts and teams" : "Comparteix amb comptes i equips", - "Email, federated cloud id" : "Correu, identificador del núvol federat", "Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits", "Expires {relativetime}" : "Caduca {relativetime}", "this share just expired." : "aquest element compartit acaba de caducar.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "S'ha desat la data de caducitat de la compartició", "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris", "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"], - "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"] + "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"], + "Email, federated cloud id" : "Correu, identificador del núvol federat" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json index 7a9ef7e6fae..80c01c4b562 100644 --- a/apps/files_sharing/l10n/ca.json +++ b/apps/files_sharing/l10n/ca.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.", "Share with accounts and teams" : "Comparteix amb comptes i equips", - "Email, federated cloud id" : "Correu, identificador del núvol federat", "Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits", "Expires {relativetime}" : "Caduca {relativetime}", "this share just expired." : "aquest element compartit acaba de caducar.", @@ -420,6 +419,7 @@ "Share expire date saved" : "S'ha desat la data de caducitat de la compartició", "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris", "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"], - "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"] + "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"], + "Email, federated cloud id" : "Correu, identificador del núvol federat" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index da6f081189b..b81d24b6513 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.", "Share with accounts and teams" : "Nasdílet účtům a týmům", - "Email, federated cloud id" : "E-mail, identif. federovaného cloudu", "Unable to load the shares list" : "Nedaří se načíst seznam sdílení", "Expires {relativetime}" : "Platnost končí {relativetime}", "this share just expired." : "platnost tohoto sdílení právě skončila.", @@ -422,6 +421,8 @@ OC.L10N.register( "Share expire date saved" : "Datum skončení platnosti sdílení uloženo", "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"], - "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"] + "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"], + "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu", + "Email, federated cloud id" : "E-mail, identif. federovaného cloudu" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index b85c88cf2f3..fc3d8509e17 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.", "Share with accounts and teams" : "Nasdílet účtům a týmům", - "Email, federated cloud id" : "E-mail, identif. federovaného cloudu", "Unable to load the shares list" : "Nedaří se načíst seznam sdílení", "Expires {relativetime}" : "Platnost končí {relativetime}", "this share just expired." : "platnost tohoto sdílení právě skončila.", @@ -420,6 +419,8 @@ "Share expire date saved" : "Datum skončení platnosti sdílení uloženo", "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"], - "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"] + "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"], + "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu", + "Email, federated cloud id" : "E-mail, identif. federovaného cloudu" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js index 23fda217be7..de52d70bb36 100644 --- a/apps/files_sharing/l10n/da.js +++ b/apps/files_sharing/l10n/da.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.", "Share with accounts and teams" : "Deling med konti og teams", - "Email, federated cloud id" : "E-mail, sammenkoblings cloud id", "Unable to load the shares list" : "Kan ikke indlæse liste med delinger", "Expires {relativetime}" : "Udløber {relativetime}", "this share just expired." : "denne deling er netop udløbet.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "Udløbsdato for deling gemt", "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"], + "Email, federated cloud id" : "E-mail, sammenkoblings cloud id" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json index 3fcc47d9fd1..9cfd2f58530 100644 --- a/apps/files_sharing/l10n/da.json +++ b/apps/files_sharing/l10n/da.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.", "Share with accounts and teams" : "Deling med konti og teams", - "Email, federated cloud id" : "E-mail, sammenkoblings cloud id", "Unable to load the shares list" : "Kan ikke indlæse liste med delinger", "Expires {relativetime}" : "Udløber {relativetime}", "this share just expired." : "denne deling er netop udløbet.", @@ -420,6 +419,7 @@ "Share expire date saved" : "Udløbsdato for deling gemt", "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"], + "Email, federated cloud id" : "E-mail, sammenkoblings cloud id" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 24e8e768379..f547ac5d350 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -313,9 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.", - "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", - "Email, federated cloud id" : "Name, Federated-Cloud-ID", + "Email, federated cloud ID" : "Name, Federated-Cloud-ID", "Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", @@ -423,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert", "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst", "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"], - "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"] + "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"], + "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Email, federated cloud id" : "Name, Federated-Cloud-ID" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 3cdd4091130..ec1399b28fa 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -311,9 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.", - "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", - "Email, federated cloud id" : "Name, Federated-Cloud-ID", + "Email, federated cloud ID" : "Name, Federated-Cloud-ID", "Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", @@ -421,6 +421,8 @@ "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert", "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst", "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"], - "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"] + "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"], + "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Email, federated cloud id" : "Name, Federated-Cloud-ID" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 27bea91cd46..b8928cb36b9 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -313,9 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.", - "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", - "Email, federated cloud id" : "Name, Federated-Cloud-ID", + "Email, federated cloud ID" : "Name, Federated-Cloud-ID", "Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", @@ -423,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert", "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen", "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"], - "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"] + "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"], + "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Email, federated cloud id" : "Name, Federated-Cloud-ID" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 6099bf4ed21..1a2c0380c70 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -311,9 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.", - "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", - "Email, federated cloud id" : "Name, Federated-Cloud-ID", + "Email, federated cloud ID" : "Name, Federated-Cloud-ID", "Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", @@ -421,6 +421,8 @@ "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert", "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen", "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"], - "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"] + "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"], + "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", + "Email, federated cloud id" : "Name, Federated-Cloud-ID" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js index 3c549cc870e..bc251e25b28 100644 --- a/apps/files_sharing/l10n/en_GB.js +++ b/apps/files_sharing/l10n/en_GB.js @@ -313,8 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.", + "Share with accounts, teams, federated cloud IDs" : "Share with accounts, teams, federated cloud IDs", "Share with accounts and teams" : "Share with accounts and teams", - "Email, federated cloud id" : "Email, federated cloud id", + "Email, federated cloud ID" : "Email, federated cloud ID", "Unable to load the shares list" : "Unable to load the shares list", "Expires {relativetime}" : "Expires {relativetime}", "this share just expired." : "this share just expired.", @@ -422,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "Share expire date saved", "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own", "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"], - "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"] + "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"], + "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id", + "Email, federated cloud id" : "Email, federated cloud id" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json index 4950706baf1..5c90c9dd3a4 100644 --- a/apps/files_sharing/l10n/en_GB.json +++ b/apps/files_sharing/l10n/en_GB.json @@ -311,8 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.", + "Share with accounts, teams, federated cloud IDs" : "Share with accounts, teams, federated cloud IDs", "Share with accounts and teams" : "Share with accounts and teams", - "Email, federated cloud id" : "Email, federated cloud id", + "Email, federated cloud ID" : "Email, federated cloud ID", "Unable to load the shares list" : "Unable to load the shares list", "Expires {relativetime}" : "Expires {relativetime}", "this share just expired." : "this share just expired.", @@ -420,6 +421,8 @@ "Share expire date saved" : "Share expire date saved", "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own", "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"], - "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"] + "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"], + "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id", + "Email, federated cloud id" : "Email, federated cloud id" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index 247c0a7f6c7..11c78e8daf2 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -313,9 +313,7 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.", - "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", "Share with accounts and teams" : "Compartir con cuentas y equipos", - "Email, federated cloud id" : "Email, ID de nube federada", "Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos", "Expires {relativetime}" : "Caduca en {relativetime}", "this share just expired." : "este recurso compartido acaba de caducar.", @@ -423,6 +421,8 @@ OC.L10N.register( "Share expire date saved" : "Fecha de caducidad del recurso compartido guardada", "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen", "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], - "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"] + "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], + "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", + "Email, federated cloud id" : "Email, ID de nube federada" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 1b8048a731f..b04f7a769ad 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -311,9 +311,7 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.", - "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", "Share with accounts and teams" : "Compartir con cuentas y equipos", - "Email, federated cloud id" : "Email, ID de nube federada", "Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos", "Expires {relativetime}" : "Caduca en {relativetime}", "this share just expired." : "este recurso compartido acaba de caducar.", @@ -421,6 +419,8 @@ "Share expire date saved" : "Fecha de caducidad del recurso compartido guardada", "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen", "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], - "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"] + "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], + "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", + "Email, federated cloud id" : "Email, ID de nube federada" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js index 3636829a8ff..4936e43efc1 100644 --- a/apps/files_sharing/l10n/et_EE.js +++ b/apps/files_sharing/l10n/et_EE.js @@ -55,6 +55,7 @@ OC.L10N.register( "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus", "Share for file {file} expired" : "„{file}“ faili jagamine aegus", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>", + "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga", "A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>", "Sharing" : "Jagamine", "A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>", @@ -69,10 +70,13 @@ OC.L10N.register( "Please specify a valid group" : "Palun määra kehtiv grupp", "Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud", "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada", "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi", "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada", + "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada", "You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud", "Please specify a valid team" : "Palun määratle korrektne tiim", + "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist", "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist", "Unknown share type" : "Tundmatu jagamise tüüp", "Not a directory" : "Ei ole kaust", @@ -84,6 +88,7 @@ OC.L10N.register( "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi", "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta", "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada", "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD", "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi", "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“", @@ -95,6 +100,7 @@ OC.L10N.register( "This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval", "shared by %s" : "jagas %s", "Download" : "Laadi alla", + "Add to your %s" : "Lisa oma teenusesse: %s", "Direct link" : "Otsene link", "Share API is disabled" : "Jagamise API on keelatud", "File sharing" : "Faide jagamine", @@ -199,11 +205,15 @@ OC.L10N.register( "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}", "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga", "File request ({label})" : "Failipäring ({label})", + "Mail share ({label})" : "Jagamine e-kirjaga ({label})", "Share link ({label})" : "Jagamise link ({label})", "Mail share" : "E-posti jagamine", "Share link ({index})" : "Jagamise link ({index})", "Create public link" : "Loo avalik link", + "Actions for \"{title}\"" : "„{title}“ tegevused", + "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale", "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev", + "Link share created" : "Lingi jagamine on loodud", "Error while creating the share" : "Viga jaosmeedia loomisel", "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave", "Password protection (enforced)" : "Paroolikaitse (jõustatud)", @@ -296,9 +306,9 @@ OC.L10N.register( "Link shares" : "Jaoslingid", "Shares" : "Jagamisi", "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.", - "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", + "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", "Share with accounts and teams" : "Jaga kasutajate ja tiimidega", - "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus", + "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus", "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu", "Expires {relativetime}" : "Aegub {relativetime}", "this share just expired." : "see jagamine aegus äsja", @@ -357,6 +367,8 @@ OC.L10N.register( "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin", "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}", "Error updating the share" : "Viga jaosmeedia uuendamisel", + "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud", + "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud", "Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud", "Share saved" : "Jaosmeedia andmed on salvestatud", "Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud", @@ -367,6 +379,8 @@ OC.L10N.register( "Share permissions saved" : "Jaosmeedia õigused on salvestatud", "Shared by" : "Jagas", "Shared with" : "Jagatud", + "Password created successfully" : "Salasõna loomine õnnestus", + "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt", "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga", "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“", @@ -395,12 +409,15 @@ OC.L10N.register( "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus", "Files" : "Failid", "Download all files" : "Laadi kõik failid alla", + "Search for share recipients" : "Otsi jaosmeedia saajaid", "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.", "Password field can't be empty" : "Salasõna väli ei saa olla tühi", "Allow download" : "Luba allalaadimine", "Share expire date saved" : "Jaosmeedia aegumise kuupäev on salvestatud", "You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"], + "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", + "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json index cf803347569..85ded811275 100644 --- a/apps/files_sharing/l10n/et_EE.json +++ b/apps/files_sharing/l10n/et_EE.json @@ -53,6 +53,7 @@ "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus", "Share for file {file} expired" : "„{file}“ faili jagamine aegus", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>", + "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga", "A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>", "Sharing" : "Jagamine", "A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>", @@ -67,10 +68,13 @@ "Please specify a valid group" : "Palun määra kehtiv grupp", "Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud", "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada", "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi", "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada", + "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada", "You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud", "Please specify a valid team" : "Palun määratle korrektne tiim", + "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist", "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist", "Unknown share type" : "Tundmatu jagamise tüüp", "Not a directory" : "Ei ole kaust", @@ -82,6 +86,7 @@ "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi", "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta", "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada", "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD", "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi", "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“", @@ -93,6 +98,7 @@ "This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval", "shared by %s" : "jagas %s", "Download" : "Laadi alla", + "Add to your %s" : "Lisa oma teenusesse: %s", "Direct link" : "Otsene link", "Share API is disabled" : "Jagamise API on keelatud", "File sharing" : "Faide jagamine", @@ -197,11 +203,15 @@ "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}", "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga", "File request ({label})" : "Failipäring ({label})", + "Mail share ({label})" : "Jagamine e-kirjaga ({label})", "Share link ({label})" : "Jagamise link ({label})", "Mail share" : "E-posti jagamine", "Share link ({index})" : "Jagamise link ({index})", "Create public link" : "Loo avalik link", + "Actions for \"{title}\"" : "„{title}“ tegevused", + "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale", "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev", + "Link share created" : "Lingi jagamine on loodud", "Error while creating the share" : "Viga jaosmeedia loomisel", "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave", "Password protection (enforced)" : "Paroolikaitse (jõustatud)", @@ -294,9 +304,9 @@ "Link shares" : "Jaoslingid", "Shares" : "Jagamisi", "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.", - "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", + "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", "Share with accounts and teams" : "Jaga kasutajate ja tiimidega", - "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus", + "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus", "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu", "Expires {relativetime}" : "Aegub {relativetime}", "this share just expired." : "see jagamine aegus äsja", @@ -355,6 +365,8 @@ "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin", "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}", "Error updating the share" : "Viga jaosmeedia uuendamisel", + "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud", + "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud", "Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud", "Share saved" : "Jaosmeedia andmed on salvestatud", "Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud", @@ -365,6 +377,8 @@ "Share permissions saved" : "Jaosmeedia õigused on salvestatud", "Shared by" : "Jagas", "Shared with" : "Jagatud", + "Password created successfully" : "Salasõna loomine õnnestus", + "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt", "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga", "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“", @@ -393,12 +407,15 @@ "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus", "Files" : "Failid", "Download all files" : "Laadi kõik failid alla", + "Search for share recipients" : "Otsi jaosmeedia saajaid", "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.", "Password field can't be empty" : "Salasõna väli ei saa olla tühi", "Allow download" : "Luba allalaadimine", "Share expire date saved" : "Jaosmeedia aegumise kuupäev on salvestatud", "You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"], + "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", + "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js index e5a49278326..07989259c35 100644 --- a/apps/files_sharing/l10n/fa.js +++ b/apps/files_sharing/l10n/fa.js @@ -157,24 +157,28 @@ OC.L10N.register( "Open in Files" : "در فایل باز کنید", "_Reject share_::_Reject shares_" : ["Reject share","Reject shares"], "_Restore share_::_Restore shares_" : ["Restore share","Restore shares"], - "Shared" : "به اشتراک گزاشته شده ", + "Shared" : "به اشتراک گذاشته شده ", "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Public file share" : "اشتراک عمومی پرونده", + "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است", "No file" : "بدون پرونده", "Public share" : "سهم عمومی", - "Overview of shared files." : "Overview of shared files.", + "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند", + "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده", "No shares" : "اشتراک گذاری وجود ندارد", "Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here", "Shared with you" : "موارد به اشتراک گذاشته شده با شما", - "List of files that are shared with you." : "List of files that are shared with you.", + "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.", "Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است", "Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here", - "List of files that you shared with others." : "List of files that you shared with others.", + "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.", "Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است", "Files and folders you shared will show up here" : "Files and folders you shared will show up here", "Shared by link" : "اشتراک گذاشته شده از طریق لینک", "List of files that are shared by link." : "List of files that are shared by link.", "No shared links" : "هیچ لینک اشتراکگذاری وجود ندارد", "Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here", + "File requests" : "درخواست پرونده", "Deleted shares" : "اشتراک گذاری های حذف شده", "List of shares you left." : "List of shares you left.", "No deleted shares" : "اشتراک گذاری های حذف نشده", @@ -197,7 +201,7 @@ OC.L10N.register( "Upload files to %s" : "بارگیری پرونده ها به%s", "Note" : "یادداشت", "Select or drop files" : "پرونده ها را انتخاب یا رها کنید", - "Uploading files" : "Uploading files", + "Uploading files" : "پرونده های در حال بارگذاری", "Uploaded files:" : "پرونده های بارگذاری شده:", "By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید", "Share not found" : "اشتراک گذاری یافت نشد", diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json index 345cac57f8b..417bcc39e94 100644 --- a/apps/files_sharing/l10n/fa.json +++ b/apps/files_sharing/l10n/fa.json @@ -155,24 +155,28 @@ "Open in Files" : "در فایل باز کنید", "_Reject share_::_Reject shares_" : ["Reject share","Reject shares"], "_Restore share_::_Restore shares_" : ["Restore share","Restore shares"], - "Shared" : "به اشتراک گزاشته شده ", + "Shared" : "به اشتراک گذاشته شده ", "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Public file share" : "اشتراک عمومی پرونده", + "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است", "No file" : "بدون پرونده", "Public share" : "سهم عمومی", - "Overview of shared files." : "Overview of shared files.", + "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند", + "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده", "No shares" : "اشتراک گذاری وجود ندارد", "Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here", "Shared with you" : "موارد به اشتراک گذاشته شده با شما", - "List of files that are shared with you." : "List of files that are shared with you.", + "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.", "Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است", "Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here", - "List of files that you shared with others." : "List of files that you shared with others.", + "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.", "Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است", "Files and folders you shared will show up here" : "Files and folders you shared will show up here", "Shared by link" : "اشتراک گذاشته شده از طریق لینک", "List of files that are shared by link." : "List of files that are shared by link.", "No shared links" : "هیچ لینک اشتراکگذاری وجود ندارد", "Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here", + "File requests" : "درخواست پرونده", "Deleted shares" : "اشتراک گذاری های حذف شده", "List of shares you left." : "List of shares you left.", "No deleted shares" : "اشتراک گذاری های حذف نشده", @@ -195,7 +199,7 @@ "Upload files to %s" : "بارگیری پرونده ها به%s", "Note" : "یادداشت", "Select or drop files" : "پرونده ها را انتخاب یا رها کنید", - "Uploading files" : "Uploading files", + "Uploading files" : "پرونده های در حال بارگذاری", "Uploaded files:" : "پرونده های بارگذاری شده:", "By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید", "Share not found" : "اشتراک گذاری یافت نشد", diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index e8835746d2c..3f64ecb6e64 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -312,7 +312,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.", "Share with accounts and teams" : "Partager avec des comptes et des équipes", - "Email, federated cloud id" : "E-mail, ID de cloud fédéré", "Unable to load the shares list" : "Impossible de charger la liste des partages", "Expires {relativetime}" : "Expire {relativetime}", "this share just expired." : "ce partage vient d'expirer", @@ -420,6 +419,7 @@ OC.L10N.register( "Share expire date saved" : "Le partage expirât à la date enregistrée", "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire", "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"], - "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"] + "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"], + "Email, federated cloud id" : "E-mail, ID de cloud fédéré" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index 44f6f94271b..412370041ff 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -310,7 +310,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.", "Share with accounts and teams" : "Partager avec des comptes et des équipes", - "Email, federated cloud id" : "E-mail, ID de cloud fédéré", "Unable to load the shares list" : "Impossible de charger la liste des partages", "Expires {relativetime}" : "Expire {relativetime}", "this share just expired." : "ce partage vient d'expirer", @@ -418,6 +417,7 @@ "Share expire date saved" : "Le partage expirât à la date enregistrée", "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire", "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"], - "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"] + "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"], + "Email, federated cloud id" : "E-mail, ID de cloud fédéré" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ga.js b/apps/files_sharing/l10n/ga.js index b687ea331db..0d41d4d1235 100644 --- a/apps/files_sharing/l10n/ga.js +++ b/apps/files_sharing/l10n/ga.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.", "Share with accounts and teams" : "Roinn le cuntais agus foirne", - "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme", "Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil", "Expires {relativetime}" : "In éag {relativetime}", "this share just expired." : "tá an sciar seo díreach imithe in éag.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "Comhroinn dáta éaga sábháilte", "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar", "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"], - "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"] + "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"], + "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme" }, "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"); diff --git a/apps/files_sharing/l10n/ga.json b/apps/files_sharing/l10n/ga.json index cfa03a91b16..418aa49ccc3 100644 --- a/apps/files_sharing/l10n/ga.json +++ b/apps/files_sharing/l10n/ga.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.", "Share with accounts and teams" : "Roinn le cuntais agus foirne", - "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme", "Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil", "Expires {relativetime}" : "In éag {relativetime}", "this share just expired." : "tá an sciar seo díreach imithe in éag.", @@ -420,6 +419,7 @@ "Share expire date saved" : "Comhroinn dáta éaga sábháilte", "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar", "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"], - "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"] + "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"], + "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme" },"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js index 3567d0a9225..e4e22208e85 100644 --- a/apps/files_sharing/l10n/gl.js +++ b/apps/files_sharing/l10n/gl.js @@ -312,7 +312,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.", "Share with accounts and teams" : "Compartir con contas e equipos", - "Email, federated cloud id" : "Correo-e, ID da nube federada", "Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións", "Expires {relativetime}" : "Caducidades {relativetime}", "this share just expired." : "vén de caducar esta compartición", @@ -420,6 +419,7 @@ OC.L10N.register( "Share expire date saved" : "Gardouse a data de caducidade da compartición", "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario", "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"], - "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"] + "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"], + "Email, federated cloud id" : "Correo-e, ID da nube federada" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json index 484fdca6794..a160b911d21 100644 --- a/apps/files_sharing/l10n/gl.json +++ b/apps/files_sharing/l10n/gl.json @@ -310,7 +310,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.", "Share with accounts and teams" : "Compartir con contas e equipos", - "Email, federated cloud id" : "Correo-e, ID da nube federada", "Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións", "Expires {relativetime}" : "Caducidades {relativetime}", "this share just expired." : "vén de caducar esta compartición", @@ -418,6 +417,7 @@ "Share expire date saved" : "Gardouse a data de caducidade da compartición", "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario", "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"], - "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"] + "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"], + "Email, federated cloud id" : "Correo-e, ID da nube federada" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js index acbebc18bb7..be0b3053f38 100644 --- a/apps/files_sharing/l10n/is.js +++ b/apps/files_sharing/l10n/is.js @@ -287,7 +287,6 @@ OC.L10N.register( "Link shares" : "Sameignartenglar", "Shares" : "Sameignir", "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum", - "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)", "Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir", "Expires {relativetime}" : "Rennur út {relativetime}", "this share just expired." : "Þessi sameign var að renna út.", @@ -393,6 +392,7 @@ OC.L10N.register( "Share expire date saved" : "Lokagildistími sameignar vistaður", "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.", "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"], - "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"] + "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"], + "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json index 138233b5dad..02dcf39b0f0 100644 --- a/apps/files_sharing/l10n/is.json +++ b/apps/files_sharing/l10n/is.json @@ -285,7 +285,6 @@ "Link shares" : "Sameignartenglar", "Shares" : "Sameignir", "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum", - "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)", "Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir", "Expires {relativetime}" : "Rennur út {relativetime}", "this share just expired." : "Þessi sameign var að renna út.", @@ -391,6 +390,7 @@ "Share expire date saved" : "Lokagildistími sameignar vistaður", "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.", "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"], - "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"] + "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"], + "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 19016980c97..2b01de664fa 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.", "Share with accounts and teams" : "Condividi con account e team", - "Email, federated cloud id" : "E-mail, ID cloud federato", "Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni", "Expires {relativetime}" : "Scade il {relativetime}", "this share just expired." : "questa condivisione è appena scaduta.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "Data di scadenza della condivisione salvata", "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono", "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"], - "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"] + "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"], + "Email, federated cloud id" : "E-mail, ID cloud federato" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index 63bcfab2def..79d7717597b 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.", "Share with accounts and teams" : "Condividi con account e team", - "Email, federated cloud id" : "E-mail, ID cloud federato", "Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni", "Expires {relativetime}" : "Scade il {relativetime}", "this share just expired." : "questa condivisione è appena scaduta.", @@ -420,6 +419,7 @@ "Share expire date saved" : "Data di scadenza della condivisione salvata", "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono", "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"], - "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"] + "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"], + "Email, federated cloud id" : "E-mail, ID cloud federato" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index 5e4fc2afe0c..062614d2fe3 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。", "Share with accounts and teams" : "アカウントとチームで共有", - "Email, federated cloud id" : "電子メール、連携クラウドID", "Unable to load the shares list" : "共有リストを読み込めません", "Expires {relativetime}" : "有効期限 {relativetime}", "this share just expired." : "この共有は期限切れになりました。", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "共有の有効期限が保存されました", "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません", "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"], - "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"] + "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"], + "Email, federated cloud id" : "電子メール、連携クラウドID" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index 6ddf32c1a5d..c2657abce02 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。", "Share with accounts and teams" : "アカウントとチームで共有", - "Email, federated cloud id" : "電子メール、連携クラウドID", "Unable to load the shares list" : "共有リストを読み込めません", "Expires {relativetime}" : "有効期限 {relativetime}", "this share just expired." : "この共有は期限切れになりました。", @@ -420,6 +419,7 @@ "Share expire date saved" : "共有の有効期限が保存されました", "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません", "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"], - "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"] + "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"], + "Email, federated cloud id" : "電子メール、連携クラウドID" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index 374e9b5d36a..6c6967c59a8 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -313,8 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하면 조직 외부의 조직이나 개인과 파일을 공유할 수 있습니다. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 또한, 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.", + "Share with accounts, teams, federated cloud IDs" : "계정, 팀 및 연합 클라우드 ID와 공유", "Share with accounts and teams" : "계정 및 팀과 공유", - "Email, federated cloud id" : "이메일, 연합 클라우드 ID", + "Email, federated cloud ID" : "이메일, 연합 클라우드 ID", "Unable to load the shares list" : "공유 목록을 불러올 수 없음", "Expires {relativetime}" : "{relativetime}에 만료", "this share just expired." : "이 공유는 방금 만료되었습니다.", @@ -378,6 +379,7 @@ OC.L10N.register( "Could not update share" : "공유를 갱신할 수 없음", "Share saved" : "공유 저장됨", "Share expiry date saved" : "공유 만료일 저장됨", + "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨", "Share label saved" : "공유 이름 저장됨", "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨", "Share password saved" : "공유 암호 저장됨", @@ -421,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "공유 만료일 저장됨", "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.", "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"], - "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"] + "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"], + "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유", + "Email, federated cloud id" : "이메일, 연합 클라우드 ID" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index e719a9c8960..d08e914da29 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -311,8 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하면 조직 외부의 조직이나 개인과 파일을 공유할 수 있습니다. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 또한, 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.", + "Share with accounts, teams, federated cloud IDs" : "계정, 팀 및 연합 클라우드 ID와 공유", "Share with accounts and teams" : "계정 및 팀과 공유", - "Email, federated cloud id" : "이메일, 연합 클라우드 ID", + "Email, federated cloud ID" : "이메일, 연합 클라우드 ID", "Unable to load the shares list" : "공유 목록을 불러올 수 없음", "Expires {relativetime}" : "{relativetime}에 만료", "this share just expired." : "이 공유는 방금 만료되었습니다.", @@ -376,6 +377,7 @@ "Could not update share" : "공유를 갱신할 수 없음", "Share saved" : "공유 저장됨", "Share expiry date saved" : "공유 만료일 저장됨", + "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨", "Share label saved" : "공유 이름 저장됨", "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨", "Share password saved" : "공유 암호 저장됨", @@ -419,6 +421,8 @@ "Share expire date saved" : "공유 만료일 저장됨", "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.", "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"], - "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"] + "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"], + "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유", + "Email, federated cloud id" : "이메일, 연합 클라우드 ID" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js index 0d34acace9a..0c5e7b6b39d 100644 --- a/apps/files_sharing/l10n/mk.js +++ b/apps/files_sharing/l10n/mk.js @@ -304,7 +304,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.", "Share with accounts and teams" : "Сподели со корисници и тимови", - "Email, federated cloud id" : "Е-пошта, федерален ИД", "Unable to load the shares list" : "Неможе да се вчита листата на споделувања", "Expires {relativetime}" : "Истекува {relativetime}", "this share just expired." : "ова споделување штотуку истече.", @@ -408,6 +407,7 @@ OC.L10N.register( "Allow download" : "Дозволи преземање", "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши", "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"], - "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"] + "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"], + "Email, federated cloud id" : "Е-пошта, федерален ИД" }, "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json index b22d5c4a216..e96fdbbce84 100644 --- a/apps/files_sharing/l10n/mk.json +++ b/apps/files_sharing/l10n/mk.json @@ -302,7 +302,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.", "Share with accounts and teams" : "Сподели со корисници и тимови", - "Email, federated cloud id" : "Е-пошта, федерален ИД", "Unable to load the shares list" : "Неможе да се вчита листата на споделувања", "Expires {relativetime}" : "Истекува {relativetime}", "this share just expired." : "ова споделување штотуку истече.", @@ -406,6 +405,7 @@ "Allow download" : "Дозволи преземање", "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши", "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"], - "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"] + "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"], + "Email, federated cloud id" : "Е-пошта, федерален ИД" },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index c2eb0447c35..369d8eb5eab 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -313,9 +313,7 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.", - "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej", "Share with accounts and teams" : "Udostępnij kontom i zespołom", - "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej", "Unable to load the shares list" : "Nie można pobrać listy udostępnień", "Expires {relativetime}" : "Wygasa {relativetime}", "this share just expired." : "te udostępnienie właśnie wygasło.", @@ -423,6 +421,8 @@ OC.L10N.register( "Share expire date saved" : "Zapisano datę ważności udziału", "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem", "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"], - "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"] + "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"], + "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej", + "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 2d307482f9f..278d634474f 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -311,9 +311,7 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.", - "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej", "Share with accounts and teams" : "Udostępnij kontom i zespołom", - "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej", "Unable to load the shares list" : "Nie można pobrać listy udostępnień", "Expires {relativetime}" : "Wygasa {relativetime}", "this share just expired." : "te udostępnienie właśnie wygasło.", @@ -421,6 +419,8 @@ "Share expire date saved" : "Zapisano datę ważności udziału", "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem", "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"], - "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"] + "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"], + "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej", + "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index 5563407602d..fa2ed461add 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -238,7 +238,7 @@ OC.L10N.register( "Custom permissions" : "Permissões personalizadas", "Resharing is not allowed" : "Recompartilhamento não é permitido", "Name or email …" : "Nome ou e-mail...", - "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...", + "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …", "Searching …" : "Pesquisando...", "No elements found." : "Nenhum elemento encontrado.", "Search globally" : "Pesquisar globalmente", @@ -254,7 +254,7 @@ OC.L10N.register( "Search for internal recipients" : "Pesquisar por destinatários internos", "Note from" : "Nota de", "Note:" : "Nota:", - "File drop" : "Baixar Arquivo ", + "File drop" : "Depósito de arquivos", "Upload files to {foldername}." : "Subir arquivos para {foldername}.", "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.", "View terms of service" : "Ver os termos de serviço", @@ -313,9 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.", - "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada", + "Share with accounts, teams, federated cloud IDs" : "Compartilhar com contas, equipes, IDs de nuvem federada", "Share with accounts and teams" : "Compartilhar com contas e equipes", - "Email, federated cloud id" : "E-mail, ID de nuvem federada", + "Email, federated cloud ID" : "E-mail, ID de nuvem federada", "Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos", "Expires {relativetime}" : "Expira {relativetime}", "this share just expired." : "esse compartilhamento acabou de expirar.", @@ -381,7 +381,7 @@ OC.L10N.register( "Share expiry date saved" : "Data de expiração do compartilhamento salva", "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo", "Share label saved" : "Marcador de compartilhamento salvo", - "Share note for recipient saved" : "Observação para o destinatário do compartilhamento salva", + "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva", "Share password saved" : "Senha do compartilhamento salva", "Share permissions saved" : "Permissões do compartilhamento salvas", "Shared by" : "Compartilhado por", @@ -392,7 +392,7 @@ OC.L10N.register( "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}", "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}", "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}", - "Share note" : "Anotação de compartilhamento", + "Share note" : "Compartilhar nota", "Show list view" : "Mostrar visualização em lista", "Show grid view" : "Mostrar visualização em grade", "Upload files to %s" : "Enviar arquivos para %s", @@ -423,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "Data de expiração do compartilhamento salva", "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade", "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"], - "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"] + "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"], + "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada", + "Email, federated cloud id" : "E-mail, ID de nuvem federada" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 6963e695841..36233e767db 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -236,7 +236,7 @@ "Custom permissions" : "Permissões personalizadas", "Resharing is not allowed" : "Recompartilhamento não é permitido", "Name or email …" : "Nome ou e-mail...", - "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...", + "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …", "Searching …" : "Pesquisando...", "No elements found." : "Nenhum elemento encontrado.", "Search globally" : "Pesquisar globalmente", @@ -252,7 +252,7 @@ "Search for internal recipients" : "Pesquisar por destinatários internos", "Note from" : "Nota de", "Note:" : "Nota:", - "File drop" : "Baixar Arquivo ", + "File drop" : "Depósito de arquivos", "Upload files to {foldername}." : "Subir arquivos para {foldername}.", "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.", "View terms of service" : "Ver os termos de serviço", @@ -311,9 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.", - "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada", + "Share with accounts, teams, federated cloud IDs" : "Compartilhar com contas, equipes, IDs de nuvem federada", "Share with accounts and teams" : "Compartilhar com contas e equipes", - "Email, federated cloud id" : "E-mail, ID de nuvem federada", + "Email, federated cloud ID" : "E-mail, ID de nuvem federada", "Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos", "Expires {relativetime}" : "Expira {relativetime}", "this share just expired." : "esse compartilhamento acabou de expirar.", @@ -379,7 +379,7 @@ "Share expiry date saved" : "Data de expiração do compartilhamento salva", "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo", "Share label saved" : "Marcador de compartilhamento salvo", - "Share note for recipient saved" : "Observação para o destinatário do compartilhamento salva", + "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva", "Share password saved" : "Senha do compartilhamento salva", "Share permissions saved" : "Permissões do compartilhamento salvas", "Shared by" : "Compartilhado por", @@ -390,7 +390,7 @@ "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}", "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}", "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}", - "Share note" : "Anotação de compartilhamento", + "Share note" : "Compartilhar nota", "Show list view" : "Mostrar visualização em lista", "Show grid view" : "Mostrar visualização em grade", "Upload files to %s" : "Enviar arquivos para %s", @@ -421,6 +421,8 @@ "Share expire date saved" : "Data de expiração do compartilhamento salva", "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade", "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"], - "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"] + "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"], + "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada", + "Email, federated cloud id" : "E-mail, ID de nuvem federada" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index ddc6d678dc3..782c58d0673 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -299,7 +299,6 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.", - "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", @@ -400,6 +399,7 @@ OC.L10N.register( "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", "Allow download" : "Разрешить скачивать", "Share expire date saved" : "Дата истечения общего доступа установлена", - "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете" + "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете", + "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 9f24ed0b720..12de42f1966 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -297,7 +297,6 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.", - "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", @@ -398,6 +397,7 @@ "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", "Allow download" : "Разрешить скачивать", "Share expire date saved" : "Дата истечения общего доступа установлена", - "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете" + "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете", + "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sc.js b/apps/files_sharing/l10n/sc.js index cacc9da26c5..9c8159b8f8c 100644 --- a/apps/files_sharing/l10n/sc.js +++ b/apps/files_sharing/l10n/sc.js @@ -99,8 +99,10 @@ OC.L10N.register( "Copy to clipboard" : "Còpia in is punta de billete", "Select" : "Seletziona", "Close" : "Serra", + "File request created" : "Rechesta de archìviu creada", "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}", "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura", + "Create a file request" : "Crea rechesta de archìviu", "Cancel" : "Annulla", "Invalid path selected" : "Percursu seletzionadu non bàlidu", "Unknown error" : "Errore disconnotu", @@ -189,6 +191,7 @@ OC.L10N.register( "Shared" : "Cumpartzidu", "Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}", "Shared with others" : "Cumpartzidu cun àtere", + "Create file request" : "Crea rechesta de archìviu", "No shares" : "Peruna cumpartzidura", "Shared with you" : "Cumpartzidu cun tegus", "Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus", @@ -196,6 +199,10 @@ OC.L10N.register( "Shared by link" : "Cumpartzidu cun ligòngiu", "List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.", "No shared links" : "Perunu ligòngiu cumpartzidu", + "File requests" : "Archìvios rechestos", + "List of file requests." : "Lista de archìvios rechestos.", + "No file requests" : "Perunu archìviu rechestu", + "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe", "Deleted shares" : "Cumpartziduras cantzelladas", "No deleted shares" : "Peruna cumpartzidura cantzellada", "Pending shares" : "Cumpartziduras in suspesu", diff --git a/apps/files_sharing/l10n/sc.json b/apps/files_sharing/l10n/sc.json index b830853148d..501522cb184 100644 --- a/apps/files_sharing/l10n/sc.json +++ b/apps/files_sharing/l10n/sc.json @@ -97,8 +97,10 @@ "Copy to clipboard" : "Còpia in is punta de billete", "Select" : "Seletziona", "Close" : "Serra", + "File request created" : "Rechesta de archìviu creada", "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}", "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura", + "Create a file request" : "Crea rechesta de archìviu", "Cancel" : "Annulla", "Invalid path selected" : "Percursu seletzionadu non bàlidu", "Unknown error" : "Errore disconnotu", @@ -187,6 +189,7 @@ "Shared" : "Cumpartzidu", "Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}", "Shared with others" : "Cumpartzidu cun àtere", + "Create file request" : "Crea rechesta de archìviu", "No shares" : "Peruna cumpartzidura", "Shared with you" : "Cumpartzidu cun tegus", "Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus", @@ -194,6 +197,10 @@ "Shared by link" : "Cumpartzidu cun ligòngiu", "List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.", "No shared links" : "Perunu ligòngiu cumpartzidu", + "File requests" : "Archìvios rechestos", + "List of file requests." : "Lista de archìvios rechestos.", + "No file requests" : "Perunu archìviu rechestu", + "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe", "Deleted shares" : "Cumpartziduras cantzelladas", "No deleted shares" : "Peruna cumpartzidura cantzellada", "Pending shares" : "Cumpartziduras in suspesu", diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index 28e4a8d6f4c..764171382db 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.", "Share with accounts and teams" : "Zdieľať s účtami a tímami", - "Email, federated cloud id" : "E-mail, id federovaného cloudu", "Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní", "Expires {relativetime}" : "Platnosť končí {relativetime}", "this share just expired." : "platnosť tohto zdieľania práve skončila.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "Dátum skončenia platnosti zdieľania bol uložený", "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"], - "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"] + "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"], + "Email, federated cloud id" : "E-mail, id federovaného cloudu" }, "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 413139c8296..506a19fff84 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.", "Share with accounts and teams" : "Zdieľať s účtami a tímami", - "Email, federated cloud id" : "E-mail, id federovaného cloudu", "Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní", "Expires {relativetime}" : "Platnosť končí {relativetime}", "this share just expired." : "platnosť tohto zdieľania práve skončila.", @@ -420,6 +419,7 @@ "Share expire date saved" : "Dátum skončenia platnosti zdieľania bol uložený", "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"], - "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"] + "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"], + "Email, federated cloud id" : "E-mail, id federovaného cloudu" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js index c49b3b797cc..26f8840d067 100644 --- a/apps/files_sharing/l10n/sr.js +++ b/apps/files_sharing/l10n/sr.js @@ -313,9 +313,7 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.", - "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака", "Share with accounts and teams" : "Дељење са налозима и тимовима", - "Email, federated cloud id" : "И-мејл, ID здруженог облака", "Unable to load the shares list" : "Неуспело учитавање листе дељења", "Expires {relativetime}" : "Истиче {relativetime}", "this share just expired." : "ово дељење је управо истекло.", @@ -423,6 +421,8 @@ OC.L10N.register( "Share expire date saved" : "Сачуван је датум истека дељења", "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво", "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"], - "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"] + "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"], + "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака", + "Email, federated cloud id" : "И-мејл, ID здруженог облака" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json index 6c8d13d3248..4d33aa6ab03 100644 --- a/apps/files_sharing/l10n/sr.json +++ b/apps/files_sharing/l10n/sr.json @@ -311,9 +311,7 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.", - "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака", "Share with accounts and teams" : "Дељење са налозима и тимовима", - "Email, federated cloud id" : "И-мејл, ID здруженог облака", "Unable to load the shares list" : "Неуспело учитавање листе дељења", "Expires {relativetime}" : "Истиче {relativetime}", "this share just expired." : "ово дељење је управо истекло.", @@ -421,6 +419,8 @@ "Share expire date saved" : "Сачуван је датум истека дељења", "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво", "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"], - "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"] + "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"], + "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака", + "Email, federated cloud id" : "И-мејл, ID здруженог облака" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 78d0893c19f..d773545bfa5 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -313,8 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.", + "Share with accounts, teams, federated cloud IDs" : "Dela med konton, team, federerade moln-ID:n", "Share with accounts and teams" : "Dela med konton och team", - "Email, federated cloud id" : "E-post, federerat moln-id", + "Email, federated cloud ID" : "E-post, federerat moln-ID", "Unable to load the shares list" : "Kunde inte läsa in delningslistan", "Expires {relativetime}" : "Upphör {relativetime}", "this share just expired." : "denna delning har just gått ut.", @@ -422,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "Delningens utgångsdatum sparad", "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"], + "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id", + "Email, federated cloud id" : "E-post, federerat moln-id" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 14f2dbbad88..c2063565baa 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -311,8 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.", + "Share with accounts, teams, federated cloud IDs" : "Dela med konton, team, federerade moln-ID:n", "Share with accounts and teams" : "Dela med konton och team", - "Email, federated cloud id" : "E-post, federerat moln-id", + "Email, federated cloud ID" : "E-post, federerat moln-ID", "Unable to load the shares list" : "Kunde inte läsa in delningslistan", "Expires {relativetime}" : "Upphör {relativetime}", "this share just expired." : "denna delning har just gått ut.", @@ -420,6 +421,8 @@ "Share expire date saved" : "Delningens utgångsdatum sparad", "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"], + "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id", + "Email, federated cloud id" : "E-post, federerat moln-id" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 4e5bb62596e..cd9580d7ae8 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -314,7 +314,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.", "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın", - "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği", "Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi", "Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}", "this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.", @@ -422,6 +421,7 @@ OC.L10N.register( "Share expire date saved" : "Paylaşım geçerlilik süresi kaydedildi", "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"], + "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index dab67cdbb36..8864f55661b 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -312,7 +312,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.", "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın", - "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği", "Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi", "Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}", "this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.", @@ -420,6 +419,7 @@ "Share expire date saved" : "Paylaşım geçerlilik süresi kaydedildi", "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok", "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"], - "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"] + "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"], + "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index ddf7055a5a3..d8ee9fd3298 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -313,7 +313,6 @@ OC.L10N.register( "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.", "Share with accounts and teams" : "Поділитися з користувачами або командами", - "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари", "Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів", "Expires {relativetime}" : "Термін дії закінчується {relativetime}", "this share just expired." : "термін дії спільного доступу вичерпано.", @@ -421,6 +420,7 @@ OC.L10N.register( "Share expire date saved" : "Збережено термін доступности спільного ресурсу", "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є", "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"], - "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"] + "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"], + "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари" }, "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index e8cc3653e3b..e58b7a78779 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -311,7 +311,6 @@ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.", "Share with accounts and teams" : "Поділитися з користувачами або командами", - "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари", "Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів", "Expires {relativetime}" : "Термін дії закінчується {relativetime}", "this share just expired." : "термін дії спільного доступу вичерпано.", @@ -419,6 +418,7 @@ "Share expire date saved" : "Збережено термін доступности спільного ресурсу", "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є", "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"], - "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"] + "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"], + "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index cebdbc5c89d..6599ff51426 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -313,9 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。", - "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享", + "Share with accounts, teams, federated cloud IDs" : "与账号、团队、联合云 ID 共享", "Share with accounts and teams" : "与账号和团队共享", - "Email, federated cloud id" : "电子邮件、联合云 ID", + "Email, federated cloud ID" : "电子邮件、联合云 ID", "Unable to load the shares list" : "无法加载共享列表", "Expires {relativetime}" : "过期 {relativetime}", "this share just expired." : "此共享已过期。", @@ -423,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "共享过期日期已保存", "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享", "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"], - "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"] + "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"], + "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享", + "Email, federated cloud id" : "电子邮件、联合云 ID" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 1b1538c8b59..56b38f5a650 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -311,9 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。", - "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享", + "Share with accounts, teams, federated cloud IDs" : "与账号、团队、联合云 ID 共享", "Share with accounts and teams" : "与账号和团队共享", - "Email, federated cloud id" : "电子邮件、联合云 ID", + "Email, federated cloud ID" : "电子邮件、联合云 ID", "Unable to load the shares list" : "无法加载共享列表", "Expires {relativetime}" : "过期 {relativetime}", "this share just expired." : "此共享已过期。", @@ -421,6 +421,8 @@ "Share expire date saved" : "共享过期日期已保存", "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享", "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"], - "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"] + "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"], + "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享", + "Email, federated cloud id" : "电子邮件、联合云 ID" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js index c4c2cec750d..97acfee6560 100644 --- a/apps/files_sharing/l10n/zh_HK.js +++ b/apps/files_sharing/l10n/zh_HK.js @@ -313,8 +313,9 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。", + "Share with accounts, teams, federated cloud IDs" : "與帳戶、團隊、聯邦雲端 ID 分享", "Share with accounts and teams" : "與帳號及團隊分享", - "Email, federated cloud id" : "電郵地址、聯邦雲端 ID", + "Email, federated cloud ID" : "電郵地址、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享清單", "Expires {relativetime}" : "有效期至 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -422,6 +423,8 @@ OC.L10N.register( "Share expire date saved" : "已儲存分享過期日期", "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享", "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"], - "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"] + "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"], + "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享", + "Email, federated cloud id" : "電郵地址、聯邦雲端 ID" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json index 59539504553..f3ff5ddd6eb 100644 --- a/apps/files_sharing/l10n/zh_HK.json +++ b/apps/files_sharing/l10n/zh_HK.json @@ -311,8 +311,9 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。", + "Share with accounts, teams, federated cloud IDs" : "與帳戶、團隊、聯邦雲端 ID 分享", "Share with accounts and teams" : "與帳號及團隊分享", - "Email, federated cloud id" : "電郵地址、聯邦雲端 ID", + "Email, federated cloud ID" : "電郵地址、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享清單", "Expires {relativetime}" : "有效期至 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -420,6 +421,8 @@ "Share expire date saved" : "已儲存分享過期日期", "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享", "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"], - "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"] + "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"], + "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享", + "Email, federated cloud id" : "電郵地址、聯邦雲端 ID" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index 7638f105d88..ee30804ebac 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -313,9 +313,7 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。", - "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享", "Share with accounts and teams" : "與帳號及團隊分享", - "Email, federated cloud id" : "電子郵件、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -423,6 +421,8 @@ OC.L10N.register( "Share expire date saved" : "已儲存分享過期日期", "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享", "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"], - "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"] + "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"], + "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享", + "Email, federated cloud id" : "電子郵件、聯邦雲端 ID" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index efe843664b8..adb6e4c73a1 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -311,9 +311,7 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。", - "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享", "Share with accounts and teams" : "與帳號及團隊分享", - "Email, federated cloud id" : "電子郵件、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -421,6 +419,8 @@ "Share expire date saved" : "已儲存分享過期日期", "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享", "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"], - "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"] + "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"], + "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享", + "Email, federated cloud id" : "電子郵件、聯邦雲端 ID" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue index 1b5275bcf7e..e50c3292055 100644 --- a/apps/files_sharing/src/views/SharingTab.vue +++ b/apps/files_sharing/src/views/SharingTab.vue @@ -252,14 +252,14 @@ export default { internalShareInputPlaceholder() { return this.config.showFederatedSharesAsInternal - ? t('files_sharing', 'Share with accounts, teams, federated cloud id') + ? t('files_sharing', 'Share with accounts, teams, federated cloud IDs') : t('files_sharing', 'Share with accounts and teams') }, externalShareInputPlaceholder() { return this.config.showFederatedSharesAsInternal ? t('files_sharing', 'Email') - : t('files_sharing', 'Email, federated cloud id') + : t('files_sharing', 'Email, federated cloud ID') }, }, diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index 6460690502f..37a1ff21e33 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -45,7 +45,7 @@ OC.L10N.register( "You granted filesystem access to app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt", "You revoked filesystem access from app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen", "Security" : "Sicherheit", - "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich erfolgreich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)", + "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Remote wipe was started on %1$s" : "Fernlöschung wurde am %1$s gestartet", "Remote wipe has finished on %1$s" : "Fernlöschung wurde am %1$s abgeschlossen", @@ -157,7 +157,7 @@ OC.L10N.register( "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.", "Data directory protected" : "Datenverzeichnis geschützt", "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.", - "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.", "Database missing columns" : "In der Datenbank fehlen Spalten", "Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.", @@ -177,7 +177,7 @@ OC.L10N.register( "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für diese Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländervorwahl zuzulassen, bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region der Konfigurationsdatei hinzufügen.", "Email test" : "E-Mail-Test", "Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.", - "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", + "Email test was successfully sent" : "Die Test-E-Mail wurde versandt", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Die E-Mail-Serverkonfiguration wurde noch nicht festgelegt oder überprüft. Bitte zu den Grundeinstellungen gehen, um die Einstellungen vorzunehmen. Anschließend die Schaltfläche \"E-Mail senden\" unterhalb des Formulars verwenden, um die Einstellungen zu überprüfen.", "Transactional File Locking" : "Transaktionale Dateisperre", "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entferne den Konfigurationseintrag `'filelocking.enabled' => false` aus deiner `config.php`, um solche Probleme zu vermeiden.", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index bb76e29c208..2b43ac861a5 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -43,7 +43,7 @@ "You granted filesystem access to app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt", "You revoked filesystem access from app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen", "Security" : "Sicherheit", - "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich erfolgreich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)", + "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Remote wipe was started on %1$s" : "Fernlöschung wurde am %1$s gestartet", "Remote wipe has finished on %1$s" : "Fernlöschung wurde am %1$s abgeschlossen", @@ -155,7 +155,7 @@ "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.", "Data directory protected" : "Datenverzeichnis geschützt", "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.", - "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.", "Database missing columns" : "In der Datenbank fehlen Spalten", "Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.", @@ -175,7 +175,7 @@ "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für diese Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländervorwahl zuzulassen, bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region der Konfigurationsdatei hinzufügen.", "Email test" : "E-Mail-Test", "Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.", - "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", + "Email test was successfully sent" : "Die Test-E-Mail wurde versandt", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Die E-Mail-Serverkonfiguration wurde noch nicht festgelegt oder überprüft. Bitte zu den Grundeinstellungen gehen, um die Einstellungen vorzunehmen. Anschließend die Schaltfläche \"E-Mail senden\" unterhalb des Formulars verwenden, um die Einstellungen zu überprüfen.", "Transactional File Locking" : "Transaktionale Dateisperre", "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entferne den Konfigurationseintrag `'filelocking.enabled' => false` aus deiner `config.php`, um solche Probleme zu vermeiden.", diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js index 35698a0a7fd..49c20c8e722 100644 --- a/apps/settings/l10n/de_DE.js +++ b/apps/settings/l10n/de_DE.js @@ -157,7 +157,7 @@ OC.L10N.register( "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.", "Data directory protected" : "Datenverzeichnis geschützt", "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", - "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.", "Database missing columns" : "In der Datenbank fehlen Spalten", "Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Bedienfreundlichkeit verbessern.", @@ -177,7 +177,7 @@ OC.L10N.register( "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.", "Email test" : "E-Mail-Test", "Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.", - "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", + "Email test was successfully sent" : "Die Test-E-Mail wurde versandt", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.", "Transactional File Locking" : "Transaktionale Dateisperre", "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entfernen Sie den Konfigurationseintrag `'filelocking.enabled' => false` aus Ihrer `config.php`, um solche Probleme zu vermeiden.", @@ -726,7 +726,7 @@ OC.L10N.register( "Delete {userid}'s account" : "Konto von {userid} löschen", "Display name was successfully changed" : "Der Anzeigename wurde geändert", "Password can't be empty" : "Passwort darf nicht leer sein", - "Password was successfully changed" : "Das Passwort wurde erfolgreich geändert", + "Password was successfully changed" : "Das Passwort wurde geändert", "Email can't be empty" : "E-Mail darf nicht leer sein", "Email was successfully changed" : "E-Mail-Adresse wurde geändert", "Welcome mail sent!" : "Willkommens-E-Mail gesendet!", diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json index 423964970c0..85ed8fe4a63 100644 --- a/apps/settings/l10n/de_DE.json +++ b/apps/settings/l10n/de_DE.json @@ -155,7 +155,7 @@ "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.", "Data directory protected" : "Datenverzeichnis geschützt", "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", - "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.", "Database missing columns" : "In der Datenbank fehlen Spalten", "Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Bedienfreundlichkeit verbessern.", @@ -175,7 +175,7 @@ "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.", "Email test" : "E-Mail-Test", "Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.", - "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", + "Email test was successfully sent" : "Die Test-E-Mail wurde versandt", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.", "Transactional File Locking" : "Transaktionale Dateisperre", "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entfernen Sie den Konfigurationseintrag `'filelocking.enabled' => false` aus Ihrer `config.php`, um solche Probleme zu vermeiden.", @@ -724,7 +724,7 @@ "Delete {userid}'s account" : "Konto von {userid} löschen", "Display name was successfully changed" : "Der Anzeigename wurde geändert", "Password can't be empty" : "Passwort darf nicht leer sein", - "Password was successfully changed" : "Das Passwort wurde erfolgreich geändert", + "Password was successfully changed" : "Das Passwort wurde geändert", "Email can't be empty" : "E-Mail darf nicht leer sein", "Email was successfully changed" : "E-Mail-Adresse wurde geändert", "Welcome mail sent!" : "Willkommens-E-Mail gesendet!", diff --git a/apps/settings/l10n/et_EE.js b/apps/settings/l10n/et_EE.js index 1cb92f65345..35fc7a5d4e3 100644 --- a/apps/settings/l10n/et_EE.js +++ b/apps/settings/l10n/et_EE.js @@ -154,6 +154,7 @@ OC.L10N.register( "PHP memory limit" : "PHP mälukasutuse ülempiir", "for Argon2 for password hashing" : "Argon2-põhise salasõna räsimise jaoks", "required for SFTP storage and recommended for WebAuthn performance" : "nõutav SFTP andmeruumi jaoks ja soovitatav WebAuthn jõudluse jaoks", + "Correctly configured" : "Korrektselt seadistatud", "PHP version" : "PHP versioon", "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %1$s. PHP %2$s on aga alates Nexctcloudi versioonist %3$s kasutuselt eemaldatud. Nexctcloud %4$s eeldab, et PHP versioon on vähemalt %5$s. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.", "You are currently running PHP %s." : "Sul on hetkel kasutusel PHP versioon %s.", @@ -161,6 +162,7 @@ OC.L10N.register( "Valid enterprise license" : "Suurfirmade litsents", "Free push service" : "Tasuta tõuketeenus", "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}." : "See on mittetoetatud Nextcloudi variant kogukonnale. Arvestades selle serveri parameetreid, pole jõudlus, töökindlus ja skaleeritavus garanteeritud. Meie tasuta teenuse ülekoormuse vältimiseks on tõuketeavituste arv piiratud. Nextcloud Enterprise versiooni eelistest loe siin: {link}.", + "Secure" : "Turvaline", "Database version" : "Andmebaasi versioon", "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni 10.3 ning tema kasutusperiood on lõppenud ja tugi on olemas vaid Ubuntu 20.04 puhul. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%1$s and <= %2$s.", "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%2$s and <= %3$s.", diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json index 0b1e47bae19..a29cfa38243 100644 --- a/apps/settings/l10n/et_EE.json +++ b/apps/settings/l10n/et_EE.json @@ -152,6 +152,7 @@ "PHP memory limit" : "PHP mälukasutuse ülempiir", "for Argon2 for password hashing" : "Argon2-põhise salasõna räsimise jaoks", "required for SFTP storage and recommended for WebAuthn performance" : "nõutav SFTP andmeruumi jaoks ja soovitatav WebAuthn jõudluse jaoks", + "Correctly configured" : "Korrektselt seadistatud", "PHP version" : "PHP versioon", "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %1$s. PHP %2$s on aga alates Nexctcloudi versioonist %3$s kasutuselt eemaldatud. Nexctcloud %4$s eeldab, et PHP versioon on vähemalt %5$s. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.", "You are currently running PHP %s." : "Sul on hetkel kasutusel PHP versioon %s.", @@ -159,6 +160,7 @@ "Valid enterprise license" : "Suurfirmade litsents", "Free push service" : "Tasuta tõuketeenus", "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}." : "See on mittetoetatud Nextcloudi variant kogukonnale. Arvestades selle serveri parameetreid, pole jõudlus, töökindlus ja skaleeritavus garanteeritud. Meie tasuta teenuse ülekoormuse vältimiseks on tõuketeavituste arv piiratud. Nextcloud Enterprise versiooni eelistest loe siin: {link}.", + "Secure" : "Turvaline", "Database version" : "Andmebaasi versioon", "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni 10.3 ning tema kasutusperiood on lõppenud ja tugi on olemas vaid Ubuntu 20.04 puhul. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%1$s and <= %2$s.", "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%2$s and <= %3$s.", diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index 4980c207733..cc79a9a04e7 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -601,6 +601,7 @@ OC.L10N.register( "Account deletion" : "Usunięcie konta", "Delete {userid}'s account" : "Usuń konto {userid}", "Display name was successfully changed" : "Nazwa wyświetlana została zmieniona", + "Password can't be empty" : "Hasło nie możne być puste", "Password was successfully changed" : "Hasło zostało zmienione", "Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony", "Welcome mail sent!" : "Wysłano wiadomość powitalną!", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index ae8760cdedf..ba3604362d2 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -599,6 +599,7 @@ "Account deletion" : "Usunięcie konta", "Delete {userid}'s account" : "Usuń konto {userid}", "Display name was successfully changed" : "Nazwa wyświetlana została zmieniona", + "Password can't be empty" : "Hasło nie możne być puste", "Password was successfully changed" : "Hasło zostało zmienione", "Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony", "Welcome mail sent!" : "Wysłano wiadomość powitalną!", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index 2744c7b7384..37546227625 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -37,7 +37,7 @@ OC.L10N.register( "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.", "Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index 5cf218b924a..801f94a3907 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -35,7 +35,7 @@ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.", "Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 5cc130582c8..142a82913d8 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -37,7 +37,7 @@ OC.L10N.register( "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", "Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 288e84d4cde..c8bcf0d8640 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -35,7 +35,7 @@ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", "Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", diff --git a/build/integration/composer.lock b/build/integration/composer.lock index 6ec2f3da3bd..362e5e2dafd 100644 --- a/build/integration/composer.lock +++ b/build/integration/composer.lock @@ -9,21 +9,20 @@ "packages-dev": [ { "name": "behat/behat", - "version": "v3.21.1", + "version": "v3.22.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "315970f1f0c7c65e50aac87494575cfb9c6aa9e3" + "reference": "a93098a77753c3cfdc4c485d75141924a78ceb93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/315970f1f0c7c65e50aac87494575cfb9c6aa9e3", - "reference": "315970f1f0c7c65e50aac87494575cfb9c6aa9e3", + "url": "https://api.github.com/repos/Behat/Behat/zipball/a93098a77753c3cfdc4c485d75141924a78ceb93", + "reference": "a93098a77753c3cfdc4c485d75141924a78ceb93", "shasum": "" }, "require": { "behat/gherkin": "^4.12.0", - "behat/transliterator": "^1.5", "composer-runtime-api": "^2.2", "composer/xdebug-handler": "^3.0", "ext-mbstring": "*", @@ -96,22 +95,22 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.21.1" + "source": "https://github.com/Behat/Behat/tree/v3.22.0" }, - "time": "2025-04-22T17:38:51+00:00" + "time": "2025-05-06T15:25:03+00:00" }, { "name": "behat/gherkin", - "version": "v4.12.0", + "version": "v4.13.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "cc3a7e224b36373be382b53ef02ede0f1807bb58" + "reference": "9294d26bb75f1718441b89f3a10e15ecb2c67f70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cc3a7e224b36373be382b53ef02ede0f1807bb58", - "reference": "cc3a7e224b36373be382b53ef02ede0f1807bb58", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/9294d26bb75f1718441b89f3a10e15ecb2c67f70", + "reference": "9294d26bb75f1718441b89f3a10e15ecb2c67f70", "shasum": "" }, "require": { @@ -119,13 +118,12 @@ "php": "8.1.* || 8.2.* || 8.3.* || 8.4.*" }, "require-dev": { - "cucumber/cucumber": "dev-gherkin-24.1.0", + "cucumber/gherkin-monorepo": "dev-gherkin-v32.1.1", "friendsofphp/php-cs-fixer": "^3.65", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^2", "phpstan/phpstan-phpunit": "^2", "phpunit/phpunit": "^10.5", - "symfony/filesystem": "^5.4 || ^6.4 || ^7.0", "symfony/yaml": "^5.4 || ^6.4 || ^7.0" }, "suggest": { @@ -138,8 +136,8 @@ } }, "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" + "psr-4": { + "Behat\\Gherkin\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -165,58 +163,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.12.0" - }, - "time": "2025-02-26T14:28:23+00:00" - }, - { - "name": "behat/transliterator", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Transliterator.git", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0", - "phpunit/phpunit": "^8.5.25 || ^9.5.19" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Transliterator\\": "src/Behat/Transliterator" - } + "source": "https://github.com/Behat/Gherkin/tree/v4.13.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Artistic-1.0" - ], - "description": "String transliterator", - "keywords": [ - "i18n", - "slug", - "transliterator" - ], - "support": { - "issues": "https://github.com/Behat/Transliterator/issues", - "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" - }, - "time": "2022-03-30T09:27:43+00:00" + "time": "2025-05-06T15:26:21+00:00" }, { "name": "composer/pcre", @@ -3302,16 +3251,16 @@ }, { "name": "symfony/console", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" + "reference": "a3011c7b7adb58d89f6c0d822abb641d7a5f9719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", + "url": "https://api.github.com/repos/symfony/console/zipball/a3011c7b7adb58d89f6c0d822abb641d7a5f9719", + "reference": "a3011c7b7adb58d89f6c0d822abb641d7a5f9719", "shasum": "" }, "require": { @@ -3376,7 +3325,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.20" + "source": "https://github.com/symfony/console/tree/v6.4.21" }, "funding": [ { @@ -3392,7 +3341,7 @@ "type": "tidelift" } ], - "time": "2025-03-03T17:16:38+00:00" + "time": "2025-04-07T15:42:41+00:00" }, { "name": "symfony/dependency-injection", @@ -3766,7 +3715,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -3825,7 +3774,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" }, "funding": [ { @@ -3845,7 +3794,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -3903,7 +3852,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -3923,7 +3872,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -3984,7 +3933,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -4004,19 +3953,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -4064,7 +4014,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -4080,7 +4030,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/service-contracts", @@ -4167,16 +4117,16 @@ }, { "name": "symfony/string", - "version": "v6.4.15", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", "shasum": "" }, "require": { @@ -4233,7 +4183,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.15" + "source": "https://github.com/symfony/string/tree/v6.4.21" }, "funding": [ { @@ -4249,20 +4199,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:12+00:00" + "time": "2025-04-18T15:23:29+00:00" }, { "name": "symfony/translation", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e" + "reference": "bb92ea5588396b319ba43283a5a3087a034cb29c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3b9bf9f33997c064885a7bfc126c14b9daa0e00e", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e", + "url": "https://api.github.com/repos/symfony/translation/zipball/bb92ea5588396b319ba43283a5a3087a034cb29c", + "reference": "bb92ea5588396b319ba43283a5a3087a034cb29c", "shasum": "" }, "require": { @@ -4328,7 +4278,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.19" + "source": "https://github.com/symfony/translation/tree/v6.4.21" }, "funding": [ { @@ -4344,7 +4294,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:18:43+00:00" + "time": "2025-04-07T19:02:30+00:00" }, { "name": "symfony/translation-contracts", @@ -4426,16 +4376,16 @@ }, { "name": "symfony/var-exporter", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" + "reference": "717e7544aa99752c54ecba5c0e17459c48317472" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/717e7544aa99752c54ecba5c0e17459c48317472", + "reference": "717e7544aa99752c54ecba5c0e17459c48317472", "shasum": "" }, "require": { @@ -4483,7 +4433,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.21" }, "funding": [ { @@ -4499,20 +4449,20 @@ "type": "tidelift" } ], - "time": "2025-03-13T09:55:08+00:00" + "time": "2025-04-27T21:06:26+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f01987f45676778b474468aa266fe2eda1f2bc7e", + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e", "shasum": "" }, "require": { @@ -4555,7 +4505,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.20" + "source": "https://github.com/symfony/yaml/tree/v6.4.21" }, "funding": [ { @@ -4571,7 +4521,7 @@ "type": "tidelift" } ], - "time": "2025-02-27T20:15:30+00:00" + "time": "2025-04-04T09:48:44+00:00" }, { "name": "theseer/tokenizer", diff --git a/core/Command/Config/System/SetConfig.php b/core/Command/Config/System/SetConfig.php index 4d23c191ac1..62ab7f7120f 100644 --- a/core/Command/Config/System/SetConfig.php +++ b/core/Command/Config/System/SetConfig.php @@ -142,6 +142,13 @@ class SetConfig extends Base { 'readable-value' => ($value === '') ? 'empty string' : 'string ' . $value, ]; + case 'json': + $value = json_decode($value, true); + return [ + 'value' => $value, + 'readable-value' => 'json ' . json_encode($value), + ]; + default: throw new \InvalidArgumentException('Invalid type'); } @@ -183,7 +190,7 @@ class SetConfig extends Base { */ public function completeOptionValues($optionName, CompletionContext $context) { if ($optionName === 'type') { - return ['string', 'integer', 'double', 'boolean']; + return ['string', 'integer', 'double', 'boolean', 'json', 'null']; } return parent::completeOptionValues($optionName, $context); } diff --git a/core/Command/Info/File.php b/core/Command/Info/File.php index a081d1d13e1..c21c2e666fb 100644 --- a/core/Command/Info/File.php +++ b/core/Command/Info/File.php @@ -8,6 +8,7 @@ declare(strict_types=1); namespace OC\Core\Command\Info; use OC\Files\ObjectStore\ObjectStoreStorage; +use OC\Files\Storage\Wrapper\Encryption; use OC\Files\View; use OCA\Files_External\Config\ExternalMountPoint; use OCA\GroupFolders\Mount\GroupMountPoint; @@ -71,6 +72,15 @@ class File extends Command { } else { $output->writeln(' <error>encryption key not found</error> should be located at: ' . $keyPath); } + $storage = $node->getStorage(); + if ($storage->instanceOfStorage(Encryption::class)) { + /** @var Encryption $storage */ + if (!$storage->hasValidHeader($node->getInternalPath())) { + $output->writeln(' <error>file doesn\'t have a valid encryption header</error>'); + } + } else { + $output->writeln(' <error>file is marked as encrypted, but encryption doesn\'t seem to be setup</error>'); + } } if ($node instanceof Folder && $node->isEncrypted() || $node instanceof OCPFile && $node->getParent()->isEncrypted()) { diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index a4e4c78a105..3fcb68d8b54 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -27,6 +27,7 @@ OC.L10N.register( "Could not complete login" : "Could not complete login", "State token missing" : "State token missing", "Your login token is invalid or has expired" : "Your login token is invalid or has expired", + "Please use original client" : "Please use original client", "This community release of Nextcloud is unsupported and push notifications are limited." : "This community release of Nextcloud is unsupported and push notifications are limited.", "Login" : "Login", "Unsupported email length (>255)" : "Unsupported email length (>255)", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 093c9564552..aa8e57fa52f 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -25,6 +25,7 @@ "Could not complete login" : "Could not complete login", "State token missing" : "State token missing", "Your login token is invalid or has expired" : "Your login token is invalid or has expired", + "Please use original client" : "Please use original client", "This community release of Nextcloud is unsupported and push notifications are limited." : "This community release of Nextcloud is unsupported and push notifications are limited.", "Login" : "Login", "Unsupported email length (>255)" : "Unsupported email length (>255)", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 21de2675fe3..ac73f72136a 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -27,6 +27,7 @@ OC.L10N.register( "Could not complete login" : "로그인을 완료할 수 없음", "State token missing" : "상태 토큰 누락", "Your login token is invalid or has expired" : "로그인 토큰이 잘못되었거나 만료되었습니다.", + "Please use original client" : "원본 클라이언트를 사용해주십시오.", "This community release of Nextcloud is unsupported and push notifications are limited." : "이 Nextcloud 커뮤니티 릴리즈는 지원하지 않는 버전이며, 푸시 알림은 제한됩니다.", "Login" : "로그인", "Unsupported email length (>255)" : "지원하지 않는 이메일 길이 (255자 초과)", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 67fc5f25474..98c8a26cfbb 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -25,6 +25,7 @@ "Could not complete login" : "로그인을 완료할 수 없음", "State token missing" : "상태 토큰 누락", "Your login token is invalid or has expired" : "로그인 토큰이 잘못되었거나 만료되었습니다.", + "Please use original client" : "원본 클라이언트를 사용해주십시오.", "This community release of Nextcloud is unsupported and push notifications are limited." : "이 Nextcloud 커뮤니티 릴리즈는 지원하지 않는 버전이며, 푸시 알림은 제한됩니다.", "Login" : "로그인", "Unsupported email length (>255)" : "지원하지 않는 이메일 길이 (255자 초과)", diff --git a/core/l10n/zh_HK.js b/core/l10n/zh_HK.js index 705b05a6a8d..73aaa79a73c 100644 --- a/core/l10n/zh_HK.js +++ b/core/l10n/zh_HK.js @@ -27,6 +27,7 @@ OC.L10N.register( "Could not complete login" : "無法完成登錄", "State token missing" : "找不到狀態權杖", "Your login token is invalid or has expired" : "您的登入權杖無效或已過期", + "Please use original client" : "請使用原先的客戶端", "This community release of Nextcloud is unsupported and push notifications are limited." : "這個社群版的 Nextcloud 是不受支援的,且推送通知功能有限。", "Login" : "登入", "Unsupported email length (>255)" : "不受支援的電郵地址長度(>255)", diff --git a/core/l10n/zh_HK.json b/core/l10n/zh_HK.json index 1099177ec34..dfd9a4dec15 100644 --- a/core/l10n/zh_HK.json +++ b/core/l10n/zh_HK.json @@ -25,6 +25,7 @@ "Could not complete login" : "無法完成登錄", "State token missing" : "找不到狀態權杖", "Your login token is invalid or has expired" : "您的登入權杖無效或已過期", + "Please use original client" : "請使用原先的客戶端", "This community release of Nextcloud is unsupported and push notifications are limited." : "這個社群版的 Nextcloud 是不受支援的,且推送通知功能有限。", "Login" : "登入", "Unsupported email length (>255)" : "不受支援的電郵地址長度(>255)", diff --git a/cypress/dockerNode.ts b/cypress/dockerNode.ts index 5cd2415f111..6e21b33101c 100644 --- a/cypress/dockerNode.ts +++ b/cypress/dockerNode.ts @@ -182,6 +182,7 @@ export const applyChangesToNextcloud = async function() { './ocs', './ocs-provider', './resources', + './tests', './console.php', './cron.php', './index.php', diff --git a/cypress/e2e/core/setup.ts b/cypress/e2e/core/setup.ts index 01606a75617..498e908585c 100644 --- a/cypress/e2e/core/setup.ts +++ b/cypress/e2e/core/setup.ts @@ -85,6 +85,26 @@ describe('Can install Nextcloud', { testIsolation: true, retries: 0 }, () => { sharedSetup() }) + it('Oracle', () => { + cy.runCommand('cp /var/www/html/tests/databases-all-config.php /var/www/html/config/config.php') + cy.visit('/') + cy.get('[data-cy-setup-form]').should('be.visible') + cy.get('[data-cy-setup-form-field="adminlogin"]').should('be.visible') + cy.get('[data-cy-setup-form-field="adminpass"]').should('be.visible') + cy.get('[data-cy-setup-form-field="directory"]').should('have.value', '/var/www/html/data') + + // Select the SQLite database + cy.get('[data-cy-setup-form-field="dbtype-oci"] input').check({ force: true }) + + // Fill in the DB form + cy.get('[data-cy-setup-form-field="dbuser"]').type('{selectAll}system') + cy.get('[data-cy-setup-form-field="dbpass"]').type('{selectAll}oracle') + cy.get('[data-cy-setup-form-field="dbname"]').type('{selectAll}FREE') + cy.get('[data-cy-setup-form-field="dbhost"]').type('{selectAll}oracle:1521') + + sharedSetup() + }) + }) /** diff --git a/dist/1092-1092.js b/dist/1092-1092.js deleted file mode 100644 index 03c921ac127..00000000000 --- a/dist/1092-1092.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[1092],{6835:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingInput.vue"],names:[],mappings:"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA",sourcesContent:['\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for="sharing-search-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const o=a},17816:function(t){t.exports=function(){"use strict";function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}var e=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(e,i){var n;n=function(){return function e(i,n,r){function s(o,l){if(!n[o]){if(!i[o]){if(!l&&t)return t();if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};i[o][0].call(h.exports,(function(t){return s(i[o][1][t]||t)}),h,h.exports,e,i,n,r)}return n[o].exports}for(var a=t,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(t,e,i){e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},{}],2:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),s=[i-7],a=1;a<e-1;a++)s[a]=s[a-1]-r;return s.push(6),s.reverse()},i.getPositions=function(t){for(var e=[],n=i.getRowColCoords(t),r=n.length,s=0;s<r;s++)for(var a=0;a<r;a++)0===s&&0===a||0===s&&a===r-1||s===r-1&&0===a||e.push([n[s],n[a]]);return e}},{"./utils":21}],3:[function(t,e,i){var n=t("./mode"),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(t){this.mode=n.ALPHANUMERIC,this.data=t}s.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=s},{"./mode":14}],4:[function(t,e,i){function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n},{}],5:[function(t,e,i){var n=t("../utils/buffer");function r(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=n.alloc(t*t),this.reservedBit=n.alloc(t*t)}r.prototype.set=function(t,e,i,n){var r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=r},{"../utils/buffer":28}],6:[function(t,e,i){var n=t("../utils/buffer"),r=t("./mode");function s(t){this.mode=r.BYTE,this.data=n.from(t)}s.getBitsLength=function(t){return 8*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){for(var e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},e.exports=s},{"../utils/buffer":28,"./mode":14}],7:[function(t,e,i){var n=t("./error-correction-level"),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];i.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},i.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return s[4*(t-1)+0];case n.M:return s[4*(t-1)+1];case n.Q:return s[4*(t-1)+2];case n.H:return s[4*(t-1)+3];default:return}}},{"./error-correction-level":8}],8:[function(t,e,i){i.L={bit:1},i.M={bit:0},i.Q={bit:3},i.H={bit:2},i.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return i.L;case"m":case"medium":return i.M;case"q":case"quartile":return i.Q;case"h":case"high":return i.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return e}}},{}],9:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getPositions=function(t){var e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},{"./utils":21}],10:[function(t,e,i){var n=t("./utils"),r=n.getBCHDigit(1335);i.getEncodedBits=function(t,e){for(var i=t.bit<<3|e,s=i<<10;n.getBCHDigit(s)-r>=0;)s^=1335<<n.getBCHDigit(s)-r;return 21522^(i<<10|s)}},{"./utils":21}],11:[function(t,e,i){var n=t("../utils/buffer"),r=n.alloc(512),s=n.alloc(256);!function(){for(var t=1,e=0;e<255;e++)r[e]=t,s[t]=e,256&(t<<=1)&&(t^=285);for(e=255;e<512;e++)r[e]=r[e-255]}(),i.log=function(t){if(t<1)throw new Error("log("+t+")");return s[t]},i.exp=function(t){return r[t]},i.mul=function(t,e){return 0===t||0===e?0:r[s[t]+s[e]]}},{"../utils/buffer":28}],12:[function(t,e,i){var n=t("./mode"),r=t("./utils");function s(t){this.mode=n.KANJI,this.data=t}s.getBitsLength=function(t){return 13*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e<this.data.length;e++){var i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},e.exports=s},{"./mode":14,"./utils":21}],13:[function(t,e,i){i.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var n=3,r=3,s=40,a=10;function o(t,e,n){switch(t){case i.Patterns.PATTERN000:return(e+n)%2==0;case i.Patterns.PATTERN001:return e%2==0;case i.Patterns.PATTERN010:return n%3==0;case i.Patterns.PATTERN011:return(e+n)%3==0;case i.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2==0;case i.Patterns.PATTERN101:return e*n%2+e*n%3==0;case i.Patterns.PATTERN110:return(e*n%2+e*n%3)%2==0;case i.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}i.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},i.from=function(t){return i.isValid(t)?parseInt(t,10):void 0},i.getPenaltyN1=function(t){for(var e=t.size,i=0,r=0,s=0,a=null,o=null,l=0;l<e;l++){r=s=0,a=o=null;for(var c=0;c<e;c++){var h=t.get(l,c);h===a?r++:(r>=5&&(i+=n+(r-5)),a=h,r=1),(h=t.get(c,l))===o?s++:(s>=5&&(i+=n+(s-5)),o=h,s=1)}r>=5&&(i+=n+(r-5)),s>=5&&(i+=n+(s-5))}return i},i.getPenaltyN2=function(t){for(var e=t.size,i=0,n=0;n<e-1;n++)for(var s=0;s<e-1;s++){var a=t.get(n,s)+t.get(n,s+1)+t.get(n+1,s)+t.get(n+1,s+1);4!==a&&0!==a||i++}return i*r},i.getPenaltyN3=function(t){for(var e=t.size,i=0,n=0,r=0,a=0;a<e;a++){n=r=0;for(var o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return i*s},i.getPenaltyN4=function(t){for(var e=0,i=t.data.length,n=0;n<i;n++)e+=t.data[n];return Math.abs(Math.ceil(100*e/i/5)-10)*a},i.applyMask=function(t,e){for(var i=e.size,n=0;n<i;n++)for(var r=0;r<i;r++)e.isReserved(r,n)||e.xor(r,n,o(t,r,n))},i.getBestMask=function(t,e){for(var n=Object.keys(i.Patterns).length,r=0,s=1/0,a=0;a<n;a++){e(a),i.applyMask(a,t);var o=i.getPenaltyN1(t)+i.getPenaltyN2(t)+i.getPenaltyN3(t)+i.getPenaltyN4(t);i.applyMask(a,t),o<s&&(s=o,r=a)}return r}},{}],14:[function(t,e,i){var n=t("./version-check"),r=t("./regex");i.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},i.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},i.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},i.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},i.MIXED={bit:-1},i.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},i.getBestModeForData=function(t){return r.testNumeric(t)?i.NUMERIC:r.testAlphanumeric(t)?i.ALPHANUMERIC:r.testKanji(t)?i.KANJI:i.BYTE},i.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},i.isValid=function(t){return t&&t.bit&&t.ccBits},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return i.NUMERIC;case"alphanumeric":return i.ALPHANUMERIC;case"kanji":return i.KANJI;case"byte":return i.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return e}}},{"./regex":19,"./version-check":22}],15:[function(t,e,i){var n=t("./mode");function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);var r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},e.exports=r},{"./mode":14}],16:[function(t,e,i){var n=t("../utils/buffer"),r=t("./galois-field");i.mul=function(t,e){for(var i=n.alloc(t.length+e.length-1),s=0;s<t.length;s++)for(var a=0;a<e.length;a++)i[s+a]^=r.mul(t[s],e[a]);return i},i.mod=function(t,e){for(var i=n.from(t);i.length-e.length>=0;){for(var s=i[0],a=0;a<e.length;a++)i[a]^=r.mul(e[a],s);for(var o=0;o<i.length&&0===i[o];)o++;i=i.slice(o)}return i},i.generateECPolynomial=function(t){for(var e=n.from([1]),s=0;s<t;s++)e=i.mul(e,[1,r.exp(s)]);return e}},{"../utils/buffer":28,"./galois-field":11}],17:[function(t,e,i){var n=t("../utils/buffer"),r=t("./utils"),s=t("./error-correction-level"),a=t("./bit-buffer"),o=t("./bit-matrix"),l=t("./alignment-pattern"),c=t("./finder-pattern"),h=t("./mask-pattern"),u=t("./error-correction-code"),d=t("./reed-solomon-encoder"),p=t("./version"),f=t("./format-info"),g=t("./mode"),A=t("./segments"),m=t("isarray");function v(t,e,i){var n,r,s=t.size,a=f.getEncodedBits(e,i);for(n=0;n<15;n++)r=1==(a>>n&1),n<6?t.set(n,8,r,!0):n<8?t.set(n+1,8,r,!0):t.set(s-15+n,8,r,!0),n<8?t.set(8,s-n-1,r,!0):n<9?t.set(8,15-n-1+1,r,!0):t.set(8,15-n-1,r,!0);t.set(s-8,8,1,!0)}function y(t,e,i){var s=new a;i.forEach((function(e){s.put(e.mode.bit,4),s.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(s)}));var o=8*(r.getSymbolTotalCodewords(t)-u.getTotalCodewordsCount(t,e));for(s.getLengthInBits()+4<=o&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(0);for(var l=(o-s.getLengthInBits())/8,c=0;c<l;c++)s.put(c%2?17:236,8);return function(t,e,i){for(var s=r.getSymbolTotalCodewords(e),a=s-u.getTotalCodewordsCount(e,i),o=u.getBlocksCount(e,i),l=o-s%o,c=Math.floor(s/o),h=Math.floor(a/o),p=h+1,f=c-h,g=new d(f),A=0,m=new Array(o),v=new Array(o),y=0,C=n.from(t.buffer),w=0;w<o;w++){var b=w<l?h:p;m[w]=C.slice(A,A+b),v[w]=g.encode(m[w]),A+=b,y=Math.max(y,b)}var _,E,x=n.alloc(s),S=0;for(_=0;_<y;_++)for(E=0;E<o;E++)_<m[E].length&&(x[S++]=m[E][_]);for(_=0;_<f;_++)for(E=0;E<o;E++)x[S++]=v[E][_];return x}(s,t,e)}function C(t,e,i,n){var s;if(m(t))s=A.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");var a=e;if(!a){var u=A.rawSplit(t);a=p.getBestVersionForData(u,i)}s=A.fromString(t,a||40)}var d=p.getBestVersionForData(s,i);if(!d)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<d)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+d+".\n")}else e=d;var f=y(e,i,s),g=r.getSymbolSize(e),C=new o(g);return function(t,e){for(var i=t.size,n=c.getPositions(e),r=0;r<n.length;r++)for(var s=n[r][0],a=n[r][1],o=-1;o<=7;o++)if(!(s+o<=-1||i<=s+o))for(var l=-1;l<=7;l++)a+l<=-1||i<=a+l||(o>=0&&o<=6&&(0===l||6===l)||l>=0&&l<=6&&(0===o||6===o)||o>=2&&o<=4&&l>=2&&l<=4?t.set(s+o,a+l,!0,!0):t.set(s+o,a+l,!1,!0))}(C,e),function(t){for(var e=t.size,i=8;i<e-8;i++){var n=i%2==0;t.set(i,6,n,!0),t.set(6,i,n,!0)}}(C),function(t,e){for(var i=l.getPositions(e),n=0;n<i.length;n++)for(var r=i[n][0],s=i[n][1],a=-2;a<=2;a++)for(var o=-2;o<=2;o++)-2===a||2===a||-2===o||2===o||0===a&&0===o?t.set(r+a,s+o,!0,!0):t.set(r+a,s+o,!1,!0)}(C,e),v(C,i,0),e>=7&&function(t,e){for(var i,n,r,s=t.size,a=p.getEncodedBits(e),o=0;o<18;o++)i=Math.floor(o/3),n=o%3+s-8-3,r=1==(a>>o&1),t.set(i,n,r,!0),t.set(n,i,r,!0)}(C,e),function(t,e){for(var i=t.size,n=-1,r=i-1,s=7,a=0,o=i-1;o>0;o-=2)for(6===o&&o--;;){for(var l=0;l<2;l++)if(!t.isReserved(r,o-l)){var c=!1;a<e.length&&(c=1==(e[a]>>>s&1)),t.set(r,o-l,c),-1==--s&&(a++,s=7)}if((r+=n)<0||i<=r){r-=n,n=-n;break}}}(C,f),isNaN(n)&&(n=h.getBestMask(C,v.bind(null,C,i))),h.applyMask(n,C),v(C,i,n),{modules:C,version:e,errorCorrectionLevel:i,maskPattern:n,segments:s}}i.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");var i,n,a=s.M;return void 0!==e&&(a=s.from(e.errorCorrectionLevel,s.M),i=p.from(e.version),n=h.from(e.maskPattern),e.toSJISFunc&&r.setToSJISFunction(e.toSJISFunc)),C(t,i,a,n)}},{"../utils/buffer":28,"./alignment-pattern":2,"./bit-buffer":4,"./bit-matrix":5,"./error-correction-code":7,"./error-correction-level":8,"./finder-pattern":9,"./format-info":10,"./mask-pattern":13,"./mode":14,"./reed-solomon-encoder":18,"./segments":20,"./utils":21,"./version":23,isarray:33}],18:[function(t,e,i){var n=t("../utils/buffer"),r=t("./polynomial"),s=t("buffer").Buffer;function a(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}a.prototype.initialize=function(t){this.degree=t,this.genPoly=r.generateECPolynomial(this.degree)},a.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");var e=n.alloc(this.degree),i=s.concat([t,e],t.length+this.degree),a=r.mod(i,this.genPoly),o=this.degree-a.length;if(o>0){var l=n.alloc(this.degree);return a.copy(l,o),l}return a},e.exports=a},{"../utils/buffer":28,"./polynomial":16,buffer:30}],19:[function(t,e,i){var n="[0-9]+",r="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",s="(?:(?![A-Z0-9 $%*+\\-./:]|"+(r=r.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";i.KANJI=new RegExp(r,"g"),i.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),i.BYTE=new RegExp(s,"g"),i.NUMERIC=new RegExp(n,"g"),i.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var a=new RegExp("^"+r+"$"),o=new RegExp("^"+n+"$"),l=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");i.testKanji=function(t){return a.test(t)},i.testNumeric=function(t){return o.test(t)},i.testAlphanumeric=function(t){return l.test(t)}},{}],20:[function(t,e,i){var n=t("./mode"),r=t("./numeric-data"),s=t("./alphanumeric-data"),a=t("./byte-data"),o=t("./kanji-data"),l=t("./regex"),c=t("./utils"),h=t("dijkstrajs");function u(t){return unescape(encodeURIComponent(t)).length}function d(t,e,i){for(var n,r=[];null!==(n=t.exec(i));)r.push({data:n[0],index:n.index,mode:e,length:n[0].length});return r}function p(t){var e,i,r=d(l.NUMERIC,n.NUMERIC,t),s=d(l.ALPHANUMERIC,n.ALPHANUMERIC,t);return c.isKanjiModeEnabled()?(e=d(l.BYTE,n.BYTE,t),i=d(l.KANJI,n.KANJI,t)):(e=d(l.BYTE_KANJI,n.BYTE,t),i=[]),r.concat(s,e,i).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function f(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return s.getBitsLength(t);case n.KANJI:return o.getBitsLength(t);case n.BYTE:return a.getBitsLength(t)}}function g(t,e){var i,l=n.getBestModeForData(t);if((i=n.from(e,l))!==n.BYTE&&i.bit<l.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(l));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new s(t);case n.KANJI:return new o(t);case n.BYTE:return new a(t)}}i.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(g(e,null)):e.data&&t.push(g(e.data,e.mode)),t}),[])},i.fromString=function(t,e){for(var r=function(t,e){for(var i={},r={start:{}},s=["start"],a=0;a<t.length;a++){for(var o=t[a],l=[],c=0;c<o.length;c++){var h=o[c],u=""+a+c;l.push(u),i[u]={node:h,lastCount:0},r[u]={};for(var d=0;d<s.length;d++){var p=s[d];i[p]&&i[p].node.mode===h.mode?(r[p][u]=f(i[p].lastCount+h.length,h.mode)-f(i[p].lastCount,h.mode),i[p].lastCount+=h.length):(i[p]&&(i[p].lastCount=h.length),r[p][u]=f(h.length,h.mode)+4+n.getCharCountIndicator(h.mode,e))}}s=l}for(d=0;d<s.length;d++)r[s[d]].end=0;return{map:r,table:i}}(function(t){for(var e=[],i=0;i<t.length;i++){var r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:u(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:u(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),e),s=h.find_path(r.map,"start","end"),a=[],o=1;o<s.length-1;o++)a.push(r.table[s[o]].node);return i.fromArray(a.reduce((function(t,e){var i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},i.rawSplit=function(t){return i.fromArray(p(t,c.isKanjiModeEnabled()))}},{"./alphanumeric-data":3,"./byte-data":6,"./kanji-data":12,"./mode":14,"./numeric-data":15,"./regex":19,"./utils":21,dijkstrajs:31}],21:[function(t,e,i){var n,r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];i.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},i.getSymbolTotalCodewords=function(t){return r[t]},i.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},i.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');n=t},i.isKanjiModeEnabled=function(){return void 0!==n},i.toSJIS=function(t){return n(t)}},{}],22:[function(t,e,i){i.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},{}],23:[function(t,e,i){var n=t("./utils"),r=t("./error-correction-code"),s=t("./error-correction-level"),a=t("./mode"),o=t("./version-check"),l=t("isarray"),c=n.getBCHDigit(7973);function h(t,e){return a.getCharCountIndicator(t,e)+4}function u(t,e){var i=0;return t.forEach((function(t){var n=h(t.mode,e);i+=n+t.getBitsLength()})),i}i.from=function(t,e){return o.isValid(t)?parseInt(t,10):e},i.getCapacity=function(t,e,i){if(!o.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=a.BYTE);var s=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===a.MIXED)return s;var l=s-h(i,t);switch(i){case a.NUMERIC:return Math.floor(l/10*3);case a.ALPHANUMERIC:return Math.floor(l/11*2);case a.KANJI:return Math.floor(l/13);case a.BYTE:default:return Math.floor(l/8)}},i.getBestVersionForData=function(t,e){var n,r=s.from(e,s.M);if(l(t)){if(t.length>1)return function(t,e){for(var n=1;n<=40;n++)if(u(t,n)<=i.getCapacity(n,e,a.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,e,n){for(var r=1;r<=40;r++)if(e<=i.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},i.getEncodedBits=function(t){if(!o.isValid(t)||t<7)throw new Error("Invalid QR Code version");for(var e=t<<12;n.getBCHDigit(e)-c>=0;)e^=7973<<n.getBCHDigit(e)-c;return t<<12|e}},{"./error-correction-code":7,"./error-correction-level":8,"./mode":14,"./utils":21,"./version-check":22,isarray:33}],24:[function(t,e,i){var n=t("./can-promise"),r=t("./core/qrcode"),s=t("./renderer/canvas"),a=t("./renderer/svg-tag.js");function o(t,e,i,s,a){var o=[].slice.call(arguments,1),l=o.length,c="function"==typeof o[l-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=e,e=s=void 0):2!==l||e.getContext||(s=i,i=e,e=void 0),new Promise((function(n,a){try{var o=r.create(i,s);n(t(o,e,s))}catch(t){a(t)}}))}if(l<2)throw new Error("Too few arguments provided");2===l?(a=i,i=e,e=s=void 0):3===l&&(e.getContext&&void 0===a?(a=s,s=void 0):(a=s,s=i,i=e,e=void 0));try{var h=r.create(i,s);a(null,t(h,e,s))}catch(t){a(t)}}i.create=r.create,i.toCanvas=o.bind(null,s.render),i.toDataURL=o.bind(null,s.renderToDataURL),i.toString=o.bind(null,(function(t,e,i){return a.render(t,i)}))},{"./can-promise":1,"./core/qrcode":17,"./renderer/canvas":25,"./renderer/svg-tag.js":26}],25:[function(t,e,i){var n=t("./utils");i.render=function(t,e,i){var r=i,s=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);var a=n.getImageWidth(t.modules.size,r),o=s.getContext("2d"),l=o.createImageData(a,a);return n.qrToImageData(l.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(o,s,a),o.putImageData(l,0,0),s},i.renderToDataURL=function(t,e,n){var r=n;void 0!==r||e&&e.getContext||(r=e,e=void 0),r||(r={});var s=i.render(t,e,r),a=r.type||"image/png",o=r.rendererOpts||{};return s.toDataURL(a,o.quality)}},{"./utils":27}],26:[function(t,e,i){var n=t("./utils");function r(t,e){var i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function s(t,e,i){var n=t+e;return void 0!==i&&(n+=" "+i),n}i.render=function(t,e,i){var a=n.getOptions(e),o=t.modules.size,l=t.modules.data,c=o+2*a.margin,h=a.color.light.a?"<path "+r(a.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",u="<path "+r(a.color.dark,"stroke")+' d="'+function(t,e,i){for(var n="",r=0,a=!1,o=0,l=0;l<t.length;l++){var c=Math.floor(l%e),h=Math.floor(l/e);c||a||(a=!0),t[l]?(o++,l>0&&c>0&&t[l-1]||(n+=a?s("M",c+i,.5+h+i):s("m",r,0),r=0,a=!1),c+1<e&&t[l+1]||(n+=s("h",o),o=0)):r++}return n}(l,o,a.margin)+'"/>',d='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(a.width?'width="'+a.width+'" height="'+a.width+'" ':"")+d+' shape-rendering="crispEdges">'+h+u+"</svg>\n";return"function"==typeof i&&i(null,p),p}},{"./utils":27}],27:[function(t,e,i){function n(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");var e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");var i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}i.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:i,scale:i?4:r,margin:e,color:{dark:n(t.color.dark||"#000000ff"),light:n(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},i.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},i.getImageWidth=function(t,e){var n=i.getScale(t,e);return Math.floor((t+2*e.margin)*n)},i.qrToImageData=function(t,e,n){for(var r=e.modules.size,s=e.modules.data,a=i.getScale(r,n),o=Math.floor((r+2*n.margin)*a),l=n.margin*a,c=[n.color.light,n.color.dark],h=0;h<o;h++)for(var u=0;u<o;u++){var d=4*(h*o+u),p=n.color.light;h>=l&&u>=l&&h<o-l&&u<o-l&&(p=c[s[Math.floor((h-l)/a)*r+Math.floor((u-l)/a)]?1:0]),t[d++]=p.r,t[d++]=p.g,t[d++]=p.b,t[d]=p.a}}},{}],28:[function(t,e,i){var n=t("isarray");s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}();var r=s.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function s(t,e,i){return s.TYPED_ARRAY_SUPPORT||this instanceof s?"number"==typeof t?l(this,t):function(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");var r;return r=void 0===i&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n),s.TYPED_ARRAY_SUPPORT?r.__proto__=s.prototype:r=c(t,r),r}(t,e,i,n):"string"==typeof e?function(t,e){var i=0|u(e),n=o(t,i),r=n.write(e);return r!==i&&(n=n.slice(0,r)),n}(t,e):function(t,e){if(s.isBuffer(e)){var i=0|a(e.length),n=o(t,i);return 0===n.length||e.copy(n,0,0,i),n}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?o(t,0):c(t,e);if("Buffer"===e.type&&Array.isArray(e.data))return c(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}(this,t,e,i):new s(t,e,i)}function a(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function o(t,e){var i;return s.TYPED_ARRAY_SUPPORT?(i=new Uint8Array(e)).__proto__=s.prototype:(null===(i=t)&&(i=new s(e)),i.length=e),i}function l(t,e){var i=o(t,e<0?0:0|a(e));if(!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)i[n]=0;return i}function c(t,e){for(var i=e.length<0?0:0|a(e.length),n=o(t,i),r=0;r<i;r+=1)n[r]=255&e[r];return n}function h(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function u(t){return s.isBuffer(t)?t.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)?t.byteLength:("string"!=typeof t&&(t=""+t),0===t.length?0:h(t).length)}s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),s.prototype.write=function(t,e,i){void 0===e||void 0===i&&"string"==typeof e?(i=this.length,e=0):isFinite(e)&&(e|=0,isFinite(i)?i|=0:i=void 0);var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(t,e,i,n){return function(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}(h(e,t.length-i),t,i,n)}(this,t,e,i)},s.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t),s.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=s.prototype;else{var r=e-t;i=new s(r,void 0);for(var a=0;a<r;++a)i[a]=this[a+t]}return i},s.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,a=n-i;if(this===t&&i<e&&e<n)for(r=a-1;r>=0;--r)t[r+e]=this[r+i];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<a;++r)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+a),e);return a},s.prototype.fill=function(t,e,i){if("string"==typeof t){if("string"==typeof e?(e=0,i=this.length):"string"==typeof i&&(i=this.length),1===t.length){var n=t.charCodeAt(0);n<256&&(t=n)}}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var r;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(r=e;r<i;++r)this[r]=t;else{var a=s.isBuffer(t)?t:new s(t),o=a.length;for(r=0;r<i-e;++r)this[r+e]=a[r%o]}return this},s.concat=function(t,e){if(!n(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return o(null,0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var r=l(null,e),a=0;for(i=0;i<t.length;++i){var c=t[i];if(!s.isBuffer(c))throw new TypeError('"list" argument must be an Array of Buffers');c.copy(r,a),a+=c.length}return r},s.byteLength=u,s.prototype._isBuffer=!0,s.isBuffer=function(t){return!(null==t||!t._isBuffer)},e.exports.alloc=function(t){var e=new s(t);return e.fill(0),e},e.exports.from=function(t){return new s(t)}},{isarray:33}],29:[function(t,e,i){i.byteLength=function(t){var e=l(t),i=e[0],n=e[1];return 3*(i+n)/4-n},i.toByteArray=function(t){var e,i,n=l(t),a=n[0],o=n[1],c=new s(function(t,e,i){return 3*(e+i)/4-i}(0,a,o)),h=0,u=o>0?a-4:a;for(i=0;i<u;i+=4)e=r[t.charCodeAt(i)]<<18|r[t.charCodeAt(i+1)]<<12|r[t.charCodeAt(i+2)]<<6|r[t.charCodeAt(i+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===o&&(e=r[t.charCodeAt(i)]<<2|r[t.charCodeAt(i+1)]>>4,c[h++]=255&e),1===o&&(e=r[t.charCodeAt(i)]<<10|r[t.charCodeAt(i+1)]<<4|r[t.charCodeAt(i+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},i.fromByteArray=function(t){for(var e,i=t.length,r=i%3,s=[],a=16383,o=0,l=i-r;o<l;o+=a)s.push(c(t,o,o+a>l?l:o+a));return 1===r?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),s.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=a[o],r[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var r,s=[],a=e;a<i;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(n[(o=r)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);var o;return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},{}],30:[function(t,e,i){var n=t("base64-js"),r=t("ieee754"),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;i.Buffer=l,i.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},i.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,i){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return c(t,e,i)}function c(t,e,i){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var i=0|f(t,e),n=o(i),r=n.write(t,e);return r!==i&&(n=n.slice(0,r)),n}(t,e);if(ArrayBuffer.isView(t))return d(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(V(t,ArrayBuffer)||t&&V(t.buffer,ArrayBuffer))return function(t,e,i){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,e):new Uint8Array(t,e,i),Object.setPrototypeOf(n,l.prototype),n}(t,e,i);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return l.from(n,e,i);var r=function(t){if(l.isBuffer(t)){var e=0|p(t.length),i=o(e);return 0===i.length||t.copy(i,0,0,e),i}return void 0!==t.length?"number"!=typeof t.length||j(t.length)?o(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return h(t),o(t<0?0:0|p(t))}function d(t){for(var e=t.length<0?0:0|p(t.length),i=o(e),n=0;n<e;n+=1)i[n]=255&t[n];return i}function p(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function f(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||V(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var i=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return $(t).length;default:if(r)return n?-1:U(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return N(this,e,i);case"utf8":case"utf-8":return S(this,e,i);case"ascii":return k(this,e,i);case"latin1":case"binary":return T(this,e,i);case"base64":return x(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function A(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function m(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),j(i=+i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,i,n,r);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):v(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(t,e,i,n,r){var s,a=1,o=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,i/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(s=i;s<o;s++)if(c(t,s)===c(e,-1===h?0:s-h)){if(-1===h&&(h=s),s-h+1===l)return h*a}else-1!==h&&(s-=s-h),h=-1}else for(i+l>o&&(i=o-l),s=i;s>=0;s--){for(var u=!0,d=0;d<l;d++)if(c(t,s+d)!==c(e,d)){u=!1;break}if(u)return s}return-1}function y(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n))>r&&(n=r):n=r;var s=e.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(e.substr(2*a,2),16);if(j(o))return a;t[i+a]=o}return a}function C(t,e,i,n){return F(U(e,t.length-i),t,i,n)}function w(t,e,i,n){return F(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,n)}function b(t,e,i,n){return w(t,e,i,n)}function _(t,e,i,n){return F($(e),t,i,n)}function E(t,e,i,n){return F(function(t,e){for(var i,n,r,s=[],a=0;a<t.length&&!((e-=2)<0);++a)n=(i=t.charCodeAt(a))>>8,r=i%256,s.push(r),s.push(n);return s}(e,t.length-i),t,i,n)}function x(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function S(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var s,a,o,l,c=t[r],h=null,u=c>239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[r+1]))&&(l=(31&c)<<6|63&s)>127&&(h=l);break;case 3:s=t[r+1],a=t[r+2],128==(192&s)&&128==(192&a)&&(l=(15&c)<<12|(63&s)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:s=t[r+1],a=t[r+2],o=t[r+3],128==(192&s)&&128==(192&a)&&128==(192&o)&&(l=(15&c)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);for(var i="",n=0;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=I));return i}(n)}i.kMaxLength=a,l.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),l.poolSize=8192,l.from=function(t,e,i){return c(t,e,i)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,i){return function(t,e,i){return h(t),t<=0?o(t):void 0!==e?"string"==typeof i?o(t).fill(e,i):o(t).fill(e):o(t)}(t,e,i)},l.allocUnsafe=function(t){return u(t)},l.allocUnsafeSlow=function(t){return u(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var i=t.length,n=e.length,r=0,s=Math.min(i,n);r<s;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var n=l.allocUnsafe(e),r=0;for(i=0;i<t.length;++i){var s=t[i];if(V(s,Uint8Array)&&(s=l.from(s)),!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,r),r+=s.length}return n},l.byteLength=f,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?S(this,0,t):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){var t="",e=i.INSPECT_MAX_BYTES;return t=this.toString("hex",0,e).replace(/(.{2})/g,"$1 ").trim(),this.length>e&&(t+=" ... "),"<Buffer "+t+">"},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,i,n,r){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),o=Math.min(s,a),c=this.slice(n,r),h=t.slice(e,i),u=0;u<o;++u)if(c[u]!==h[u]){s=c[u],a=h[u];break}return s<a?-1:a<s?1:0},l.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},l.prototype.indexOf=function(t,e,i){return m(this,t,e,i,!0)},l.prototype.lastIndexOf=function(t,e,i){return m(this,t,e,i,!1)},l.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return y(this,t,e,i);case"utf8":case"utf-8":return C(this,t,e,i);case"ascii":return w(this,t,e,i);case"latin1":case"binary":return b(this,t,e,i);case"base64":return _(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function k(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(127&t[r]);return n}function T(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(t[r]);return n}function N(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",s=e;s<i;++s)r+=z[t[s]];return r}function D(t,e,i){for(var n=t.slice(e,i),r="",s=0;s<n.length;s+=2)r+=String.fromCharCode(n[s]+256*n[s+1]);return r}function P(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,i,n,r,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<s)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function B(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function L(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function O(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i=this.length;(t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,l.prototype),n},l.prototype.readUIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n},l.prototype.readUIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s<i&&(r*=256);)this[e+s]=t/r&255;return e+i},l.prototype.writeUIntBE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,s=1;for(this[e+r]=255&t;--r>=0&&(s*=256);)this[e+r]=t/s&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=0,a=1,o=0;for(this[e]=255&t;++s<i&&(a*=256);)t<0&&0===o&&0!==this[e+s-1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=i-1,a=1,o=0;for(this[e+s]=255&t;--s>=0&&(a*=256);)t<0&&0===o&&0!==this[e+s+1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,i){return L(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return L(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return O(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return O(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r=n-i;if(this===t&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,i,n);else if(this===t&&i<e&&e<n)for(var s=r-1;s>=0;--s)t[s+e]=this[s+i];else Uint8Array.prototype.set.call(t,this.subarray(i,n),e);return r},l.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var r=t.charCodeAt(0);("utf8"===n&&r<128||"latin1"===n)&&(t=r)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var s;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s<i;++s)this[s]=t;else{var a=l.isBuffer(t)?t:l.from(t,n),o=a.length;if(0===o)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(s=0;s<i-e;++s)this[s+e]=a[s%o]}return this};var M=/[^+/0-9A-Za-z-_]/g;function U(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function $(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}function V(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function j(t){return t!=t}var z=function(){for(var t="0123456789abcdef",e=new Array(256),i=0;i<16;++i)for(var n=16*i,r=0;r<16;++r)e[n+r]=t[i]+t[r];return e}()},{"base64-js":29,ieee754:32}],31:[function(t,e,i){var n={single_source_shortest_paths:function(t,e,i){var r={},s={};s[e]=0;var a,o,l,c,h,u,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in o=(a=p.pop()).value,c=a.cost,h=t[o]||{})h.hasOwnProperty(l)&&(u=c+h[l],d=s[l],(void 0===s[l]||d>u)&&(s[l]=u,p.push(l,u),r[l]=o));if(void 0!==i&&void 0===s[i]){var f=["Could not find a path from ",e," to ",i,"."].join("");throw new Error(f)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,e,i){var r=n.single_source_shortest_paths(t,e,i);return n.extract_shortest_path_from_predecessor_list(r,i)},PriorityQueue:{make:function(t){var e,i=n.PriorityQueue,r={};for(e in t=t||{},i)i.hasOwnProperty(e)&&(r[e]=i[e]);return r.queue=[],r.sorter=t.sorter||i.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)},{}],32:[function(t,e,i){i.read=function(t,e,i,n,r){var s,a,o=8*r-n-1,l=(1<<o)-1,c=l>>1,h=-7,u=i?r-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=o;h>0;s=256*s+t[e+u],u+=d,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=n;h>0;a=256*a+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),s-=c}return(p?-1:1)*a*Math.pow(2,s-n)},i.write=function(t,e,i,n,r,s){var a,o,l,c=8*s-r-1,h=(1<<c)-1,u=h>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=h?(o=0,a=h):a+u>=1?(o=(e*l-1)*Math.pow(2,r),a+=u):(o=e*Math.pow(2,u-1)*Math.pow(2,r),a=0));r>=8;t[i+p]=255&o,p+=f,o/=256,r-=8);for(a=a<<r|o,c+=r;c>0;t[i+p]=255&a,p+=f,a/=256,c-=8);t[i+p-f]|=128*g}},{}],33:[function(t,e,i){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}]},{},[24])(24)},e.exports=n()}));return{name:"qrcode",props:{value:null,options:Object,tag:{type:String,default:"canvas"}},render:function(t){return t(this.tag,this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.$el&&this.generate()}}},methods:{generate:function(){var t=this,i=this.options,n=this.tag,r=String(this.value);"canvas"===n?e.toCanvas(this.$el,r,i,(function(t){if(t)throw t})):"img"===n?e.toDataURL(r,i,(function(e,i){if(e)throw e;t.$el.src=i})):e.toString(r,i,(function(e,i){if(e)throw e;t.$el.innerHTML=i}))}},mounted:function(){this.generate()}}}()},27514:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},27518:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},35810:(t,e,i)=>{"use strict";i.d(e,{Al:()=>n.r,H4:()=>n.c,My:()=>u,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,lJ:()=>n.d,pt:()=>n.F,ur:()=>d,v7:()=>c});var n=i(68251),r=(i(43627),i(53334)),s=i(380),a=i(65606);Error;const o=["B","KB","MB","GB","TB","PB"],l=["B","KiB","MiB","GiB","TiB","PiB"];function c(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let s=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;s=Math.min((i?l.length:o.length)-1,s);const a=i?l[s]:o[s];let c=(t/Math.pow(n?1e3:1024,s)).toFixed(1);return!0===e&&0===s?("0.0"!==c?"< 1 ":"0 ")+(i?l[1]:o[1]):(c=s<2?parseFloat(c).toFixed(0):parseFloat(c).toLocaleString((0,r.lO)()),c+" "+a)}function h(t){return t instanceof Date?t.toISOString():String(t)}function u(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),s=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[r,a]of e.entries()){const e=s.compare(h(a(t)),h(a(i)));if(0!==e)return e*n[r]}return 0}))}function d(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return u(t,[...i.sortFavoritesFirst?[t=>1!==t.attributes?.favorite]:[],...i.sortFoldersFirst?[t=>"folder"!==t.type]:[],..."basename"!==i.sortingMode?[t=>t[i.sortingMode]]:[],t=>{return(e=t.displayname||t.attributes?.displayname||t.basename).lastIndexOf(".")>0?e.slice(0,e.lastIndexOf(".")):e;var e},t=>t.basename],[...i.sortFavoritesFirst?["asc"]:[],...i.sortFoldersFirst?["asc"]:[],..."mtime"===i.sortingMode?["asc"===i.sortingOrder?"desc":"asc"]:[],..."mtime"!==i.sortingMode&&"basename"!==i.sortingMode?[i.sortingOrder]:[],i.sortingOrder,i.sortingOrder])}var p,f,g={},A={};function m(){return p||(p=1,function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+i+"$");t.isExist=function(t){return void 0!==t},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,i){if(e){const n=Object.keys(e),r=n.length;for(let s=0;s<r;s++)t[n[s]]="strict"===i?[e[n[s]]]:e[n[s]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){return!(null==n.exec(t))},t.getAllMatches=function(t,e){const i=[];let n=e.exec(t);for(;n;){const r=[];r.startIndex=e.lastIndex-n[0].length;const s=n.length;for(let t=0;t<s;t++)r.push(n[t]);i.push(r),n=e.exec(t)}return i},t.nameRegexp=i}(A)),A}function v(){if(f)return g;f=1;const t=m(),e={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function n(t,e){const i=e;for(;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{const n=t.substr(i,e-i);if(e>5&&"xml"===n)return u("InvalidXml","XML declaration allowed only at the start of the document.",p(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function r(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e<t.length;e++)if("-"===t[e]&&"-"===t[e+1]&&">"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let i=1;for(e+=8;e<t.length;e++)if("<"===t[e])i++;else if(">"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e<t.length;e++)if("]"===t[e]&&"]"===t[e+1]&&">"===t[e+2]){e+=2;break}return e}g.validate=function(s,a){a=Object.assign({},e,a);const l=[];let d=!1,f=!1;"\ufeff"===s[0]&&(s=s.substr(1));for(let e=0;e<s.length;e++)if("<"===s[e]&&"?"===s[e+1]){if(e+=2,e=n(s,e),e.err)return e}else{if("<"!==s[e]){if(i(s[e]))continue;return u("InvalidChar","char '"+s[e]+"' is not expected.",p(s,e))}{let A=e;if(e++,"!"===s[e]){e=r(s,e);continue}{let m=!1;"/"===s[e]&&(m=!0,e++);let v="";for(;e<s.length&&">"!==s[e]&&" "!==s[e]&&"\t"!==s[e]&&"\n"!==s[e]&&"\r"!==s[e];e++)v+=s[e];if(v=v.trim(),"/"===v[v.length-1]&&(v=v.substring(0,v.length-1),e--),g=v,!t.isName(g)){let t;return t=0===v.trim().length?"Invalid space after '<'.":"Tag '"+v+"' is an invalid name.",u("InvalidTag",t,p(s,e))}const y=o(s,e);if(!1===y)return u("InvalidAttr","Attributes for '"+v+"' have open quote.",p(s,e));let C=y.value;if(e=y.index,"/"===C[C.length-1]){const t=e-C.length;C=C.substring(0,C.length-1);const i=c(C,a);if(!0!==i)return u(i.err.code,i.err.msg,p(s,t+i.err.line));d=!0}else if(m){if(!y.tagClosed)return u("InvalidTag","Closing tag '"+v+"' doesn't have proper closing.",p(s,e));if(C.trim().length>0)return u("InvalidTag","Closing tag '"+v+"' can't have attributes or invalid starting.",p(s,A));if(0===l.length)return u("InvalidTag","Closing tag '"+v+"' has not been opened.",p(s,A));{const t=l.pop();if(v!==t.tagName){let e=p(s,t.tagStartPos);return u("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+e.line+", col "+e.col+") instead of closing tag '"+v+"'.",p(s,A))}0==l.length&&(f=!0)}}else{const t=c(C,a);if(!0!==t)return u(t.err.code,t.err.msg,p(s,e-C.length+t.err.line));if(!0===f)return u("InvalidXml","Multiple possible root nodes found.",p(s,e));-1!==a.unpairedTags.indexOf(v)||l.push({tagName:v,tagStartPos:A}),d=!0}for(e++;e<s.length;e++)if("<"===s[e]){if("!"===s[e+1]){e++,e=r(s,e);continue}if("?"!==s[e+1])break;if(e=n(s,++e),e.err)return e}else if("&"===s[e]){const t=h(s,e);if(-1==t)return u("InvalidChar","char '&' is not expected.",p(s,e));e=t}else if(!0===f&&!i(s[e]))return u("InvalidXml","Extra text at the end",p(s,e));"<"===s[e]&&e--}}}var g;return d?1==l.length?u("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",p(s,l[0].tagStartPos)):!(l.length>0)||u("InvalidXml","Invalid '"+JSON.stringify(l.map((t=>t.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):u("InvalidXml","Start tag expected.",1)};const s='"',a="'";function o(t,e){let i="",n="",r=!1;for(;e<t.length;e++){if(t[e]===s||t[e]===a)""===n?n=t[e]:n!==t[e]||(n="");else if(">"===t[e]&&""===n){r=!0;break}i+=t[e]}return""===n&&{value:i,index:e,tagClosed:r}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,i){const n=t.getAllMatches(e,l),r={};for(let t=0;t<n.length;t++){if(0===n[t][1].length)return u("InvalidAttr","Attribute '"+n[t][2]+"' has no space in starting.",A(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",A(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",A(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",A(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",A(n[t]));r[e]=1}return!0}function h(t,e){if(";"===t[++e])return-1;if("#"===t[e])return function(t,e){let i=/\d/;for("x"===t[e]&&(e++,i=/[\da-fA-F]/);e<t.length;e++){if(";"===t[e])return e;if(!t[e].match(i))break}return-1}(t,++e);let i=0;for(;e<t.length;e++,i++)if(!(t[e].match(/\w/)&&i<20)){if(";"===t[e])break;return-1}return e}function u(t,e,i){return{err:{code:t,msg:e,line:i.line||i,col:i.col}}}function d(e){return t.isName(e)}function p(t,e){const i=t.substring(0,e).split(/\r?\n/);return{line:i.length,col:i[i.length-1].length+1}}function A(t){return t.startIndex+t[1].length}return g}var y,C,w,b,_,E,x,S,I,k,T,N={};function D(){return I?S:(I=1,S=function(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const i of t){if("string"==typeof i&&e===i)return!0;if(i instanceof RegExp&&i.test(e))return!0}}:()=>!1})}var P,R,B,L,O,M,U,$,F,V,j,z,q,H={};function G(){if(P)return H;function t(r,s,a){let o;const l={};for(let c=0;c<r.length;c++){const h=r[c],u=e(h);let d="";if(d=void 0===a?u:a+"."+u,u===s.textNodeName)void 0===o?o=h[u]:o+=""+h[u];else{if(void 0===u)continue;if(h[u]){let e=t(h[u],s,d);const r=n(e,s);h[":@"]?i(e,h[":@"],d,s):1!==Object.keys(e).length||void 0===e[s.textNodeName]||s.alwaysCreateTextNode?0===Object.keys(e).length&&(s.alwaysCreateTextNode?e[s.textNodeName]="":e=""):e=e[s.textNodeName],void 0!==l[u]&&l.hasOwnProperty(u)?(Array.isArray(l[u])||(l[u]=[l[u]]),l[u].push(e)):s.isArray(u,d,r)?l[u]=[e]:l[u]=e}}}return"string"==typeof o?o.length>0&&(l[s.textNodeName]=o):void 0!==o&&(l[s.textNodeName]=o),l}function e(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(":@"!==i)return i}}function i(t,e,i,n){if(e){const r=Object.keys(e),s=r.length;for(let a=0;a<s;a++){const s=r[a];n.isArray(s,i+"."+s,!0,!0)?t[s]=[e[s]]:t[s]=e[s]}}}function n(t,e){const{textNodeName:i}=e,n=Object.keys(t).length;return 0===n||!(1!==n||!t[i]&&"boolean"!=typeof t[i]&&0!==t[i])}return P=1,H.prettify=function(e,i){return t(e,i)},H}function Y(){if(B)return R;B=1;const{buildOptions:t}=function(){if(y)return N;y=1;const t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t}};return N.buildOptions=function(e){return Object.assign({},t,e)},N.defaultOptions=t,N}(),e=function(){if(T)return k;T=1;const t=m(),e=w?C:(w=1,C=class{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}),i=function(){if(_)return b;_=1;const t=m();function e(t,e){let i="";for(;e<t.length&&"'"!==t[e]&&'"'!==t[e];e++)i+=t[e];if(i=i.trim(),-1!==i.indexOf(" "))throw new Error("External entites are not supported");const n=t[e++];let r="";for(;e<t.length&&t[e]!==n;e++)r+=t[e];return[i,r,e]}function i(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"N"===t[e+3]&&"T"===t[e+4]&&"I"===t[e+5]&&"T"===t[e+6]&&"Y"===t[e+7]}function n(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"L"===t[e+3]&&"E"===t[e+4]&&"M"===t[e+5]&&"E"===t[e+6]&&"N"===t[e+7]&&"T"===t[e+8]}function r(t,e){return"!"===t[e+1]&&"A"===t[e+2]&&"T"===t[e+3]&&"T"===t[e+4]&&"L"===t[e+5]&&"I"===t[e+6]&&"S"===t[e+7]&&"T"===t[e+8]}function s(t,e){return"!"===t[e+1]&&"N"===t[e+2]&&"O"===t[e+3]&&"T"===t[e+4]&&"A"===t[e+5]&&"T"===t[e+6]&&"I"===t[e+7]&&"O"===t[e+8]&&"N"===t[e+9]}function a(e){if(t.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}return b=function(t,o){const l={};if("O"!==t[o+3]||"C"!==t[o+4]||"T"!==t[o+5]||"Y"!==t[o+6]||"P"!==t[o+7]||"E"!==t[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let c=1,h=!1,u=!1,d="";for(;o<t.length;o++)if("<"!==t[o]||u)if(">"===t[o]){if(u?"-"===t[o-1]&&"-"===t[o-2]&&(u=!1,c--):c--,0===c)break}else"["===t[o]?h=!0:d+=t[o];else{if(h&&i(t,o)){let i,n;o+=7,[i,n,o]=e(t,o+1),-1===n.indexOf("&")&&(l[a(i)]={regx:RegExp(`&${i};`,"g"),val:n})}else h&&n(t,o)||h&&r(t,o)?o+=8:h&&s(t,o)?o+=9:u=!0;c++,d=""}if(0!==c)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(x)return E;x=1;const t=/^[-+]?0x[a-fA-F0-9]+$/,e=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return E=function(n,r={}){if(r=Object.assign({},i,r),!n||"string"!=typeof n)return n;let s=n.trim();if(void 0!==r.skipLike&&r.skipLike.test(s))return n;if(r.hex&&t.test(s))return Number.parseInt(s,16);{const t=e.exec(s);if(t){const e=t[1],i=t[2];let o=(a=t[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substr(0,a.length-1)),a):a;const l=t[4]||t[6];if(!r.leadingZeros&&i.length>0&&e&&"."!==s[2])return n;if(!r.leadingZeros&&i.length>0&&!e&&"."!==s[1])return n;{const t=Number(s),a=""+t;return-1!==a.search(/[eE]/)||l?r.eNotation?t:n:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||e&&a==="-"+o?t:n:i?o===a||e+o===a?t:n:s===a||s===e+a?t:n}}return n}var a}}(),r=D();function s(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:t[n]}}}function a(t,e,i,n,r,s,a){if(void 0!==t&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,i,r,s);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?y(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function o(t){if(this.options.removeNSPrefix){const e=t.split(":"),i="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=i+e[1])}return t}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function c(e,i,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){const n=t.getAllMatches(e,l),r=n.length,s={};for(let t=0;t<r;t++){const e=this.resolveNameSpace(n[t][1]);if(this.ignoreAttributesFn(e,i))continue;let r=n[t][4],a=this.options.attributeNamePrefix+e;if(e.length)if(this.options.transformAttributeName&&(a=this.options.transformAttributeName(a)),"__proto__"===a&&(a="#__proto__"),void 0!==r){this.options.trimValues&&(r=r.trim()),r=this.replaceEntitiesValue(r);const t=this.options.attributeValueProcessor(e,r,i);s[a]=null==t?r:typeof t!=typeof r||t!==r?t:y(r,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[a]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const t={};return t[this.options.attributesGroupName]=s,t}return s}}const h=function(t){t=t.replace(/\r\n?/g,"\n");const n=new e("!xml");let r=n,s="",a="";for(let o=0;o<t.length;o++)if("<"===t[o])if("/"===t[o+1]){const e=g(t,">",o,"Closing Tag is not closed.");let i=t.substring(o+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(s=this.saveTextToParentTag(s,r,a));const n=a.substring(a.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: </${i}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),r=this.tagsNodeStack.pop(),s="",o=e}else if("?"===t[o+1]){let i=A(t,o,!1,"?>");if(!i)throw new Error("Pi Tag is not closed.");if(s=this.saveTextToParentTag(s,r,a),this.options.ignoreDeclaration&&"?xml"===i.tagName||this.options.ignorePiTags);else{const t=new e(i.tagName);t.add(this.options.textNodeName,""),i.tagName!==i.tagExp&&i.attrExpPresent&&(t[":@"]=this.buildAttributesMap(i.tagExp,a,i.tagName)),this.addChild(r,t,a)}o=i.closeIndex+1}else if("!--"===t.substr(o+1,3)){const e=g(t,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(o+4,e-2);s=this.saveTextToParentTag(s,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}o=e}else if("!D"===t.substr(o+1,2)){const e=i(t,o);this.docTypeEntities=e.entities,o=e.i}else if("!["===t.substr(o+1,2)){const e=g(t,"]]>",o,"CDATA is not closed.")-2,i=t.substring(o+9,e);s=this.saveTextToParentTag(s,r,a);let n=this.parseTextData(i,r.tagname,a,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,n),o=e+2}else{let i=A(t,o,this.options.removeNSPrefix),l=i.tagName;const c=i.rawTagName;let h=i.tagExp,u=i.attrExpPresent,d=i.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&s&&"!xml"!==r.tagname&&(s=this.saveTextToParentTag(s,r,a,!1));const p=r;if(p&&-1!==this.options.unpairedTags.indexOf(p.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),l!==n.tagname&&(a+=a?"."+l:l),this.isItStopNode(this.options.stopNodes,a,l)){let n="";if(h.length>0&&h.lastIndexOf("/")===h.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),o=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=i.closeIndex;else{const e=this.readStopNodeData(t,c,d+1);if(!e)throw new Error(`Unexpected end of ${c}`);o=e.i,n=e.tagContent}const s=new e(l);l!==h&&u&&(s[":@"]=this.buildAttributesMap(h,a,l)),n&&(n=this.parseTextData(n,l,a,!0,u,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),s.add(this.options.textNodeName,n),this.addChild(r,s,a)}else{if(h.length>0&&h.lastIndexOf("/")===h.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const t=new e(l);l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),a=a.substr(0,a.lastIndexOf("."))}else{const t=new e(l);this.tagsNodeStack.push(r),l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),r=t}s="",o=d}}else s+=t[o];return n.child};function u(t,e,i){const n=this.options.updateTag(e.tagname,i,e[":@"]);!1===n||("string"==typeof n?(e.tagname=n,t.addChild(e)):t.addChild(e))}const d=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const i=this.docTypeEntities[e];t=t.replace(i.regx,i.val)}for(let e in this.lastEntities){const i=this.lastEntities[e];t=t.replace(i.regex,i.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const i=this.htmlEntities[e];t=t.replace(i.regex,i.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function p(t,e,i,n){return t&&(void 0===n&&(n=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function f(t,e,i){const n="*."+i;for(const i in t){const r=t[i];if(n===r||e===r)return!0}return!1}function g(t,e,i,n){const r=t.indexOf(e,i);if(-1===r)throw new Error(n);return r+e.length-1}function A(t,e,i,n=">"){const r=function(t,e,i=">"){let n,r="";for(let s=e;s<t.length;s++){let e=t[s];if(n)e===n&&(n="");else if('"'===e||"'"===e)n=e;else if(e===i[0]){if(!i[1])return{data:r,index:s};if(t[s+1]===i[1])return{data:r,index:s}}else"\t"===e&&(e=" ");r+=e}}(t,e+1,n);if(!r)return;let s=r.data;const a=r.index,o=s.search(/\s/);let l=s,c=!0;-1!==o&&(l=s.substring(0,o),s=s.substring(o+1).trimStart());const h=l;if(i){const t=l.indexOf(":");-1!==t&&(l=l.substr(t+1),c=l!==r.data.substr(t+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:c,rawTagName:h}}function v(t,e,i){const n=i;let r=1;for(;i<t.length;i++)if("<"===t[i])if("/"===t[i+1]){const s=g(t,">",i,`${e} is not closed`);if(t.substring(i+2,s).trim()===e&&(r--,0===r))return{tagContent:t.substring(n,i),i:s};i=s}else if("?"===t[i+1])i=g(t,"?>",i+1,"StopNode is not closed.");else if("!--"===t.substr(i+1,3))i=g(t,"--\x3e",i+3,"StopNode is not closed.");else if("!["===t.substr(i+1,2))i=g(t,"]]>",i,"StopNode is not closed.")-2;else{const n=A(t,i,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&r++,i=n.closeIndex)}}function y(e,i,r){if(i&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&n(e,r)}return t.isExist(e)?e:""}return k=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=s,this.parseXml=h,this.parseTextData=a,this.resolveNameSpace=o,this.buildAttributesMap=c,this.isItStopNode=f,this.replaceEntitiesValue=d,this.readStopNodeData=v,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=G(),n=v();return R=class{constructor(e){this.externalEntities={},this.options=t(e)}parse(t,r){if("string"==typeof t);else{if(!t.toString)throw new Error("XML data is accepted in String or Bytes[] form.");t=t.toString()}if(r){!0===r&&(r={});const e=n.validate(t,r);if(!0!==e)throw Error(`${e.err.msg}:${e.err.line}:${e.err.col}`)}const s=new e(this.options);s.addExternalEntities(this.externalEntities);const a=s.parseXml(t);return this.options.preserveOrder||void 0===a?a:i(a,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}}}function W(){if(O)return L;function t(s,a,o,l){let c="",h=!1;for(let u=0;u<s.length;u++){const d=s[u],p=e(d);if(void 0===p)continue;let f="";if(f=0===o.length?p:`${o}.${p}`,p===a.textNodeName){let t=d[p];n(f,a)||(t=a.tagValueProcessor(p,t),t=r(t,a)),h&&(c+=l),c+=t,h=!1;continue}if(p===a.cdataPropName){h&&(c+=l),c+=`<![CDATA[${d[p][0][a.textNodeName]}]]>`,h=!1;continue}if(p===a.commentPropName){c+=l+`\x3c!--${d[p][0][a.textNodeName]}--\x3e`,h=!0;continue}if("?"===p[0]){const t=i(d[":@"],a),e="?xml"===p?"":l;let n=d[p][0][a.textNodeName];n=0!==n.length?" "+n:"",c+=e+`<${p}${n}${t}?>`,h=!0;continue}let g=l;""!==g&&(g+=a.indentBy);const A=l+`<${p}${i(d[":@"],a)}`,m=t(d[p],a,f,g);-1!==a.unpairedTags.indexOf(p)?a.suppressUnpairedNode?c+=A+">":c+=A+"/>":m&&0!==m.length||!a.suppressEmptyNode?m&&m.endsWith(">")?c+=A+`>${m}${l}</${p}>`:(c+=A+">",m&&""!==l&&(m.includes("/>")||m.includes("</"))?c+=l+a.indentBy+m+l:c+=m,c+=`</${p}>`):c+=A+"/>",h=!0}return c}function e(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];if(t.hasOwnProperty(n)&&":@"!==n)return n}}function i(t,e){let i="";if(t&&!e.ignoreAttributes)for(let n in t){if(!t.hasOwnProperty(n))continue;let s=e.attributeValueProcessor(n,t[n]);s=r(s,e),!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}="${s}"`}return i}function n(t,e){let i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let n in e.stopNodes)if(e.stopNodes[n]===t||e.stopNodes[n]==="*."+i)return!0;return!1}function r(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const n=e.entities[i];t=t.replace(n.regex,n.val)}return t}return O=1,L=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function X(){if(j)return V;j=1;const t="object"==typeof a&&a.env&&a.env.NODE_DEBUG&&/\bsemver\b/i.test(a.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return V=t}function Q(){if(q)return z;q=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return z={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}!function(){if(F)return $;F=1;const t=v(),e=Y(),i=function(){if(U)return M;U=1;const t=W(),e=D(),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a),this.processTextOrObjNode=r,this.options.format?(this.indentate=s,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function r(t,e,i,n){const r=this.j2x(t,i+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i):this.buildObjectNode(r.val,e,r.attrStr,i)}function s(t){return this.options.indentBy.repeat(t)}function a(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}return n.prototype.build=function(e){return this.options.preserveOrder?t(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},n.prototype.j2x=function(t,e,i){let n="",r="";const s=i.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(r+="");else if(null===t[a])this.isAttribute(a)?r+="":"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)r+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const i=this.isAttribute(a);if(i&&!this.ignoreAttributesFn(i,s))n+=this.buildAttrPairStr(i,""+t[a]);else if(!i)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);r+=this.replaceEntitiesValue(e)}else r+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let s="",o="";for(let l=0;l<n;l++){const n=t[a][l];if(void 0===n);else if(null===n)"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const t=this.j2x(n,e+1,i.concat(a));s+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else s+=this.processTextOrObjNode(n,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,n);t=this.replaceEntitiesValue(t),s+=t}else s+=this.buildTextValNode(n,a,"",e)}this.options.oneListGroup&&(s=this.buildObjectNode(s,a,o,e)),r+=s}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let r=0;r<i;r++)n+=this.buildAttrPairStr(e[r],""+t[a][e[r]])}else r+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:n,val:r}},n.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},n.prototype.buildObjectNode=function(t,e,i,n){if(""===t)return"?"===e[0]?this.indentate(n)+"<"+e+i+"?"+this.tagEndChar:this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let r="</"+e+this.tagEndChar,s="";return"?"===e[0]&&(s="?",r=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===s.length?this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(n)+"<"+e+i+s+this.tagEndChar+t+this.indentate(n)+r:this.indentate(n)+"<"+e+i+s+">"+t+r}},n.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},n.prototype.buildTextValNode=function(t,e,i,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+i+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(e,t);return r=this.replaceEntitiesValue(r),""===r?this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+i+">"+r+"</"+e+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},M=n}();$={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var Z,K,J,tt,et,it,nt,rt,st,at,ot,lt,ct,ht={exports:{}};function ut(){if(nt)return it;nt=1;const t=X(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=Q(),{safeRe:n,t:r}=(Z||(Z=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=Q(),s=X(),a=(e=t.exports={}).re=[],o=e.safeRe=[],l=e.src=[],c=e.t={};let h=0;const u="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[u,n]],p=(t,e,i)=>{const n=(t=>{for(const[e,i]of d)t=t.split(`${e}*`).join(`${e}{0,${i}}`).split(`${e}+`).join(`${e}{1,${i}}`);return t})(e),r=h++;s(t,r,e),c[t]=r,l[r]=e,a[r]=new RegExp(e,i?"g":void 0),o[r]=new RegExp(n,i?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${u}*`),p("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${u}+`),p("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),p("FULL",`^${l[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),p("LOOSE",`^${l[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),p("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?`),p("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",l[c.COERCE],!0),p("COERCERTLFULL",l[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",p("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",p("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(ht,ht.exports)),ht.exports),s=function(){if(J)return K;J=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return K=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(et)return tt;et=1;const t=/^[0-9]+$/,e=(e,i)=>{const n=t.test(e),r=t.test(i);return n&&r&&(e=+e,i=+i),e===i?0:n&&!r?-1:r&&!n?1:e<i?-1:1};return tt={compareIdentifiers:e,rcompareIdentifiers:(t,i)=>e(i,t)}}();class o{constructor(a,l){if(l=s(l),a instanceof o){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if("string"!=typeof a)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof a}".`);if(a.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const c=a.trim().match(l.loose?n[r.LOOSE]:n[r.FULL]);if(!c)throw new TypeError(`Invalid Version: ${a}`);if(this.raw=a,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map((t=>{if(/^[0-9]+$/.test(t)){const e=+t;if(e>=0&&e<i)return e}return t})):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(t("SemVer.compare",this.version,this.options,e),!(e instanceof o)){if("string"==typeof e&&e===this.version)return 0;e=new o(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(t){return t instanceof o||(t=new o(t,this.options)),a(this.major,t.major)||a(this.minor,t.minor)||a(this.patch,t.patch)}comparePre(e){if(e instanceof o||(e=new o(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let i=0;do{const n=this.prerelease[i],r=e.prerelease[i];if(t("prerelease compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}compareBuild(e){e instanceof o||(e=new o(e,this.options));let i=0;do{const n=this.build[i],r=e.build[i];if(t("build compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}inc(t,e,i){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e,i),this.inc("pre",e,i);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",e,i),this.inc("pre",e,i);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const t=Number(i)?1:0;if(!e&&!1===i)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[t];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(e===this.prerelease.join(".")&&!1===i)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(t)}}if(e){let n=[e,t];!1===i&&(n=[e]),0===a(this.prerelease[0],e)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return it=o}!function(){if(ot)return at;ot=1;const t=function(){if(st)return rt;st=1;const t=ut();return rt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();at=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(ct)return lt;ct=1;const t=ut();lt=(e,i)=>new t(e,i).major}(),s.m},38310:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-expiry-time[data-v-66d8c844]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-66d8c844]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-66d8c844]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-66d8c844]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=a},38779:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__internal .avatar-external[data-v-57874406]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-57874406]{opacity:1;color:var(--color-success)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue"],names:[],mappings:"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,0BAAA",sourcesContent:["\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n"],sourceRoot:""}]);const o=a},43570:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-44339fa4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-44339fa4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-44339fa4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-44339fa4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-44339fa4]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=a},48318:function(t,e,i){!function(t){"use strict";var e,i=function(){try{if(t.URLSearchParams&&"bar"===new t.URLSearchParams("foo=bar").get("foo"))return t.URLSearchParams}catch(t){}return null}(),n=i&&"a=1"===new i({a:1}).toString(),r=i&&"+"===new i("s=%2B").get("s"),s=i&&"size"in i.prototype,a="__URLSearchParams__",o=!i||((e=new i).append("s"," &"),"s=+%26"===e.toString()),l=p.prototype,c=!(!t.Symbol||!t.Symbol.iterator);if(!(i&&n&&r&&o&&s)){l.append=function(t,e){v(this[a],t,e)},l.delete=function(t){delete this[a][t]},l.get=function(t){var e=this[a];return this.has(t)?e[t][0]:null},l.getAll=function(t){var e=this[a];return this.has(t)?e[t].slice(0):[]},l.has=function(t){return C(this[a],t)},l.set=function(t,e){this[a][t]=[""+e]},l.toString=function(){var t,e,i,n,r=this[a],s=[];for(e in r)for(i=f(e),t=0,n=r[e];t<n.length;t++)s.push(i+"="+f(n[t]));return s.join("&")};var h,u=t.Proxy&&i&&(!r||!o||!n||!s);u?(h=new Proxy(i,{construct:function(t,e){return new t(new p(e[0]).toString())}})).toString=Function.prototype.toString.bind(p):h=p,Object.defineProperty(t,"URLSearchParams",{value:h});var d=t.URLSearchParams.prototype;d.polyfill=!0,!u&&t.Symbol&&(d[t.Symbol.toStringTag]="URLSearchParams"),"forEach"in d||(d.forEach=function(t,e){var i=m(this.toString());Object.getOwnPropertyNames(i).forEach((function(n){i[n].forEach((function(i){t.call(e,i,n,this)}),this)}),this)}),"sort"in d||(d.sort=function(){var t,e,i,n=m(this.toString()),r=[];for(t in n)r.push(t);for(r.sort(),e=0;e<r.length;e++)this.delete(r[e]);for(e=0;e<r.length;e++){var s=r[e],a=n[s];for(i=0;i<a.length;i++)this.append(s,a[i])}}),"keys"in d||(d.keys=function(){var t=[];return this.forEach((function(e,i){t.push(i)})),A(t)}),"values"in d||(d.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),A(t)}),"entries"in d||(d.entries=function(){var t=[];return this.forEach((function(e,i){t.push([i,e])})),A(t)}),c&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries),"size"in d||Object.defineProperty(d,"size",{get:function(){var t=m(this.toString());if(d===this)throw new TypeError("Illegal invocation at URLSearchParams.invokeGetter");return Object.keys(t).reduce((function(e,i){return e+t[i].length}),0)}})}function p(t){((t=t||"")instanceof URLSearchParams||t instanceof p)&&(t=t.toString()),this[a]=m(t)}function f(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function g(t){return t.replace(/[ +]/g,"%20").replace(/(%[a-f0-9]{2})+/gi,(function(t){return decodeURIComponent(t)}))}function A(e){var i={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return c&&(i[t.Symbol.iterator]=function(){return i}),i}function m(t){var e={};if("object"==typeof t)if(y(t))for(var i=0;i<t.length;i++){var n=t[i];if(!y(n)||2!==n.length)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");v(e,n[0],n[1])}else for(var r in t)t.hasOwnProperty(r)&&v(e,r,t[r]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var s=t.split("&"),a=0;a<s.length;a++){var o=s[a],l=o.indexOf("=");-1<l?v(e,g(o.slice(0,l)),g(o.slice(l+1))):o&&v(e,g(o),"")}}return e}function v(t,e,i){var n="string"==typeof i?i:null!=i&&"function"==typeof i.toString?i.toString():JSON.stringify(i);C(t,e)?t[e].push(n):t[e]=[n]}function y(t){return!!t&&"[object Array]"===Object.prototype.toString.call(t)}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(void 0!==i.g?i.g:"undefined"!=typeof window?window:this)},56467:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__inherited .avatar-shared[data-v-a6cc72e6]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=a},59620:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharingTabDetailsView[data-v-4d0ee506]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4d0ee506]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4d0ee506]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4d0ee506]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4d0ee506]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4d0ee506]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4d0ee506]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4d0ee506]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4d0ee506]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4d0ee506] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4d0ee506]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4d0ee506]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4d0ee506]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4d0ee506]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-4d0ee506]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]:first-child{margin-inline-start:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue"],names:[],mappings:"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA",sourcesContent:["\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=a},59879:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-fe8ed59e]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-fe8ed59e]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-fe8ed59e]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-fe8ed59e]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=a},69018:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Bi});var r=n(21777),s=n(35810),a=n(32981),o=n(63814),l=n(85072),c=n.n(l),h=n(97825),u=n.n(h),d=n(77659),p=n.n(d),f=n(55056),g=n.n(f),A=n(10540),m=n.n(A),v=n(41113),y=n.n(v),C=n(97380),w={};w.styleTagTransform=y(),w.setAttributes=g(),w.insert=p().bind(null,"head"),w.domAPI=u(),w.insertStyleElement=m(),c()(C.A,w),C.A&&C.A.locals&&C.A.locals;var b=n(53334),_=n(41944),E=n(67607);const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},S="object"==typeof global&&global&&global.Object===Object&&global;var I="object"==typeof self&&self&&self.Object===Object&&self;const k=S||I||Function("return this")(),T=function(){return k.Date.now()};var N=/\s/;var D=/^\s+/;const P=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&N.test(t.charAt(e)););return e}(t)+1).replace(D,""):t},R=k.Symbol;var B=Object.prototype,L=B.hasOwnProperty,O=B.toString,M=R?R.toStringTag:void 0;var U=Object.prototype.toString;var $=R?R.toStringTag:void 0;const F=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":$&&$ in Object(t)?function(t){var e=L.call(t,M),i=t[M];try{t[M]=void 0;var n=!0}catch(t){}var r=O.call(t);return n&&(e?t[M]=i:delete t[M]),r}(t):function(t){return U.call(t)}(t)};var V=/^[-+]0x[0-9a-f]+$/i,j=/^0b[01]+$/i,z=/^0o[0-7]+$/i,q=parseInt;const H=function(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return null!=t&&"object"==typeof t}(t)&&"[object Symbol]"==F(t)}(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=P(t);var i=j.test(t);return i||z.test(t)?q(t.slice(2),i?2:8):V.test(t)?NaN:+t};var G=Math.max,Y=Math.min;var W=n(24764),X=n(57505),Q=n(85471),Z=n(65043);const K=new class{constructor(){this.http=Z.Ay}listCollection(t){return this.http.get((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e}),{name:i}).then((t=>t.data.ocs.data))}addResource(t,e,i){return i=""+i,this.http.post((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{resourceType:e,resourceId:i}).then((t=>t.data.ocs.data))}removeResource(t,e,i){return this.http.delete((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{params:{resourceType:e,resourceId:i}}).then((t=>t.data.ocs.data))}search(t){return this.http.get((0,o.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},J=(0,Q.Kh)({collections:[]}),tt={addCollections(t){(0,Q.hZ)(J,"collections",t)},addCollection(t){J.collections.push(t)},removeCollection(t){(0,Q.hZ)(J,"collections",J.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=J.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Q.hZ)(J.collections,e,t):J.collections.push(t)}},et={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>K.getCollectionsByResource(t,e).then((t=>(tt.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>K.createCollection(t,e,r).then((t=>{tt.addCollection(t),et.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>K.renameCollection(t,e).then((t=>(tt.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>K.addResource(t,e,i).then((t=>(tt.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>K.removeResource(t,e,i).then((t=>{t.resources.length>0?tt.updateCollection(t):tt.removeCollection(t)})),search:t=>K.search(t)};function it(t,e,i,n,r,s,a,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=i,c._compiled=!0),n&&(c.functional=!0),s&&(c._scopeId="data-v-"+s),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var h=c.render;c.render=function(t,e){return l.call(e),h(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:c}}const nt=it({name:"CollectionListItem",components:{NcAvatar:_.A,NcActions:W.A,NcActionButton:X.A},props:{collection:{type:Object,default:null}},data:()=>({detailsOpen:!1,newName:null,error:{}}),computed:{getIcon:()=>t=>[t.iconClass],typeClass:()=>t=>"resource-type-"+t.type,limitedResources:()=>t=>t.resources?t.resources.slice(0,2):[],iconUrl:()=>t=>t.mimetype?OC.MimeType.getIconUrl(t.mimetype):t.iconUrl?t.iconUrl:""},methods:{t:b.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){et.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?et.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,b.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Q.hZ)(this.error,"rename",null)}),3e3)})):this.newName=null}}},(function(){var t=this,e=t._self._c;return e("li",{staticClass:"collection-list-item"},[e("NcAvatar",{staticClass:"collection-avatar",attrs:{"display-name":t.collection.name,"allow-placeholder":""}}),null===t.newName?e("span",{staticClass:"collection-item-name",attrs:{title:""},on:{click:t.showDetails}},[t._v(t._s(t.collection.name))]):e("form",{class:{shouldshake:t.error.rename},on:{submit:function(e){return e.preventDefault(),t.renameCollection.apply(null,arguments)}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newName,expression:"newName"}],attrs:{type:"text",autocomplete:"off",autocapitalize:"off"},domProps:{value:t.newName},on:{input:function(e){e.target.composing||(t.newName=e.target.value)}}}),e("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t.detailsOpen||null!==t.newName?t._e():e("div",{staticClass:"linked-icons"},t._l(t.limitedResources(t.collection),(function(i){return e("a",{key:i.type+"|"+i.id,class:t.typeClass(i),attrs:{title:i.name,href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}})])})),0),null===t.newName?e("span",{staticClass:"sharingOptionsGroup"},[e("NcActions",[e("NcActionButton",{attrs:{icon:"icon-info"},on:{click:function(e){return e.preventDefault(),t.toggleDetails.apply(null,arguments)}}},[t._v(" "+t._s(t.detailsOpen?t.t("core","Hide details"):t.t("core","Show details"))+" ")]),e("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(e){return e.preventDefault(),t.openRename.apply(null,arguments)}}},[t._v(" "+t._s(t.t("core","Rename project"))+" ")])],1)],1):t._e(),e("transition",{attrs:{name:"fade"}},[t.error.rename?e("div",{staticClass:"error"},[t._v(" "+t._s(t.error.rename)+" ")]):t._e()]),e("transition",{attrs:{name:"fade"}},[t.detailsOpen?e("ul",{staticClass:"resource-list-details"},t._l(t.collection.resources,(function(i){return e("li",{key:i.type+"|"+i.id,class:t.typeClass(i)},[e("a",{attrs:{href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}}),e("span",{staticClass:"resource-name"},[t._v(t._s(i.name||""))])]),e("span",{staticClass:"icon-close",on:{click:function(e){return t.removeResource(t.collection,i)}}})])})),0):t._e()])],1)}),[],!1,null,"42733c12",null,null).exports,rt=function(t,e,i){var n,r,s,a,o,l,c=0,h=!1,u=!1,d=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(e){var i=n,s=r;return n=r=void 0,c=e,a=t.apply(s,i)}function f(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function g(){var t=T();if(f(t))return A(t);o=setTimeout(g,function(t){var i=e-(t-l);return u?Y(i,s-(t-c)):i}(t))}function A(t){return o=void 0,d&&n?p(t):(n=r=void 0,a)}function m(){var t=T(),i=f(t);if(n=arguments,r=this,l=t,i){if(void 0===o)return function(t){return c=t,o=setTimeout(g,e),h?p(t):a}(l);if(u)return clearTimeout(o),o=setTimeout(g,e),p(l)}return void 0===o&&(o=setTimeout(g,e)),a}return e=H(e)||0,x(i)&&(h=!!i.leading,s=(u="maxWait"in i)?G(H(i.maxWait)||0,e):s,d="trailing"in i?!!i.trailing:d),m.cancel=function(){void 0!==o&&clearTimeout(o),c=0,n=l=r=o=void 0},m.flush=function(){return void 0===o?a:A(T())},m}((function(t,e){""!==t&&(e(!0),et.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),st={name:"CollectionList",components:{CollectionListItem:nt,NcAvatar:_.A,NcSelect:E.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:J}),data:()=>({selectIsOpen:!1,generatingCodes:!1,codes:void 0,value:null,model:{},searchCollections:[],error:null,isSelectOpen:!1}),computed:{collections(){return this.state.collections.filter((t=>void 0!==t.resources.find((t=>t&&t.id===""+this.id&&t.type===this.type))))},placeholder(){return this.isSelectOpen?(0,b.t)("core","Type to search for existing projects"):(0,b.t)("core","Add to a project")},options(){const t=[];window.OCP.Collaboration.getTypes().sort().forEach((e=>{t.push({method:0,type:e,title:window.OCP.Collaboration.getLabel(e),class:window.OCP.Collaboration.getIcon(e),action:()=>window.OCP.Collaboration.trigger(e)})}));for(const e in this.searchCollections)-1===this.collections.findIndex((t=>t.id===this.searchCollections[e].id))&&t.push({method:1,title:this.searchCollections[e].name,collectionId:this.searchCollections[e].id});return t}},watch:{type(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:b.t,select(t,e){0===t.method&&t.action().then((e=>{et.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,b.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&et.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,b.t)("core","Failed to add the item to the project"),t)}))},search(t,e){rt.bind(this)(t,e)},showSelect(){this.selectIsOpen=!0,this.$refs.select.$el.focus()},hideSelect(){this.selectIsOpen=!1},isVueComponent:t=>t._isVue,setError(t,e){console.error(t,e),this.error=t,setTimeout((()=>{this.error=null}),5e3)}}},at=it(st,(function(){var t=this,e=t._self._c;return t.collections&&t.type&&t.id?e("ul",{staticClass:"collection-list",attrs:{id:"collection-list"}},[e("li",{on:{click:t.showSelect}},[t._m(0),e("div",{attrs:{id:"collection-select-container"}},[e("NcSelect",{ref:"select",attrs:{"aria-label-combobox":t.t("core","Add to a project"),options:t.options,placeholder:t.placeholder,label:"title",limit:5},on:{close:function(e){t.isSelectOpen=!1},open:function(e){t.isSelectOpen=!0},"option:selected":t.select,search:t.search},scopedSlots:t._u([{key:"selected-option",fn:function(i){return[e("span",{staticClass:"option__desc"},[e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])])]}},{key:"option",fn:function(i){return[e("span",{staticClass:"option__wrapper"},[i.class?e("span",{staticClass:"avatar",class:i.class}):2!==i.method?e("NcAvatar",{attrs:{"allow-placeholder":"","display-name":i.title}}):t._e(),e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])],1)]}}],null,!1,2397208459),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[e("p",{staticClass:"hint"},[t._v(" "+t._s(t.t("core","Connect items to a project to make them easier to find"))+" ")])])],1)]),e("transition",{attrs:{name:"fade"}},[t.error?e("li",{staticClass:"error"},[t._v(" "+t._s(t.error)+" ")]):t._e()]),t._l(t.collections,(function(t){return e("CollectionListItem",{key:t.id,attrs:{collection:t}})}))],2):t._e()}),[function(){var t=this._self._c;return t("div",{staticClass:"avatar"},[t("span",{staticClass:"icon-projects"})])}],!1,null,"8ebb2593",null,null).exports;var ot=n(77905),lt=n(83241),ct=n(99316),ht=n(19231),ut=n(97012),dt=n(87485);class pt{constructor(){(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i})(this,"_capabilities",void 0),this._capabilities=(0,dt.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}get showFederatedSharesAsInternal(){return(0,a.C)("files_sharing","showFederatedSharesAsInternal",!1)}}var ft=n(35947);const gt=(0,ft.YK)().setApp("files_sharing").detectUser().build();class At{constructor(t){if(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}(this,"_share",void 0),t.ocs&&t.ocs.data&&t.ocs.data[0]&&(t=t.ocs.data[0]),"string"==typeof t.id&&(t.id=Number.parseInt(t.id)),t.hide_download=!!t.hide_download,t.mail_send=!!t.mail_send,t.attributes&&"string"==typeof t.attributes)try{t.attributes=JSON.parse(t.attributes)}catch(e){console.warn("Could not parse share attributes returned by server",t.attributes)}t.attributes=t.attributes??[],this._share=t}get state(){return this._share}get id(){return this._share.id}get type(){return this._share.share_type}get permissions(){return this._share.permissions}get attributes(){return this._share.attributes||[]}set permissions(t){this._share.permissions=t}get owner(){return this._share.uid_owner}get ownerDisplayName(){return this._share.displayname_owner}get shareWith(){return this._share.share_with}get shareWithDisplayName(){return this._share.share_with_displayname||this._share.share_with}get shareWithDisplayNameUnique(){return this._share.share_with_displayname_unique||this._share.share_with}get shareWithLink(){return this._share.share_with_link}get shareWithAvatar(){return this._share.share_with_avatar}get uidFileOwner(){return this._share.uid_file_owner}get displaynameFileOwner(){return this._share.displayname_file_owner||this._share.uid_file_owner}get createdTime(){return this._share.stime}get expireDate(){return this._share.expiration}set expireDate(t){this._share.expiration=t}get token(){return this._share.token}set token(t){this._share.token=t}get note(){return this._share.note}set note(t){this._share.note=t}get label(){return this._share.label??""}set label(t){this._share.label=t}get mailSend(){return!0===this._share.mail_send}get hideDownload(){return!0===this._share.hide_download||void 0!==this.attributes.find?.((t=>{let{scope:e,key:i,value:n}=t;return"permissions"===e&&"download"===i&&!n}))}set hideDownload(t){if(!t){const t=this.attributes.find((t=>{let{key:e,scope:i}=t;return"download"===e&&"permissions"===i}));t&&(t.value=!0)}this._share.hide_download=!0===t}get password(){return this._share.password}set password(t){this._share.password=t}get passwordExpirationTime(){return this._share.password_expiration_time}set passwordExpirationTime(t){this._share.password_expiration_time=t}get sendPasswordByTalk(){return this._share.send_password_by_talk}set sendPasswordByTalk(t){this._share.send_password_by_talk=t}get path(){return this._share.path}get itemType(){return this._share.item_type}get mimetype(){return this._share.mimetype}get fileSource(){return this._share.file_source}get fileTarget(){return this._share.file_target}get fileParent(){return this._share.file_parent}get hasReadPermission(){return!!(this.permissions&window.OC.PERMISSION_READ)}get hasCreatePermission(){return!!(this.permissions&window.OC.PERMISSION_CREATE)}get hasDeletePermission(){return!!(this.permissions&window.OC.PERMISSION_DELETE)}get hasUpdatePermission(){return!!(this.permissions&window.OC.PERMISSION_UPDATE)}get hasSharePermission(){return!!(this.permissions&window.OC.PERMISSION_SHARE)}get hasDownloadPermission(){return this.attributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))}get isFileRequest(){return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[]";const e=t=>"fileRequest"===t.scope&&"enabled"===t.key&&!0===t.value;try{return JSON.parse(t).some(e)}catch(t){return gt.error("Error while parsing share attributes",{error:t}),!1}}(JSON.stringify(this.attributes))}set hasDownloadPermission(t){this.setAttribute("permissions","download",!!t)}setAttribute(t,e,i){const n={scope:t,key:e,value:i};for(const t in this._share.attributes){const e=this._share.attributes[t];if(e.scope===n.scope&&e.key===n.key)return void this._share.attributes.splice(t,1,n)}this._share.attributes.push(n)}get canEdit(){return!0===this._share.can_edit}get canDelete(){return!0===this._share.can_delete}get viaFileid(){return this._share.via_fileid}get viaPath(){return this._share.via_path}get parent(){return this._share.parent}get storageId(){return this._share.storage_id}get storage(){return this._share.storage}get itemSource(){return this._share.item_source}get status(){return this._share.status}}var mt=n(85168),vt=n(54373),yt=n(31773);const Ct={name:"SharingEntrySimple",components:{NcActions:W.A},props:{title:{type:String,default:"",required:!0},subtitle:{type:String,default:""},isUnique:{type:Boolean,default:!0},ariaExpanded:{type:Boolean,default:null}},computed:{ariaExpandedValue(){return null===this.ariaExpanded?this.ariaExpanded:this.ariaExpanded?"true":"false"}}};var wt=n(43570),bt={};bt.styleTagTransform=y(),bt.setAttributes=g(),bt.insert=p().bind(null,"head"),bt.domAPI=u(),bt.insertStyleElement=m(),c()(wt.A,bt),wt.A&&wt.A.locals&&wt.A.locals;var _t=n(14486);const Et=(0,_t.A)(Ct,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[t._t("avatar"),t._v(" "),e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title"},[t._v(t._s(t.title))]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t"+t._s(t.subtitle)+"\n\t\t")]):t._e()]),t._v(" "),t.$slots.default?e("NcActions",{ref:"actionsComponent",staticClass:"sharing-entry__actions",attrs:{"menu-align":"right","aria-expanded":t.ariaExpandedValue}},[t._t("default")],2):t._e()],2)}),[],!1,null,"44339fa4",null).exports,xt={name:"SharingEntryInternal",components:{NcActionButton:X.A,SharingEntrySimple:Et,CheckIcon:vt.A,ClipboardIcon:yt.A},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return window.location.protocol+"//"+window.location.host+(0,o.Jv)("/f/")+this.fileInfo.id},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing","Copy internal link to clipboard")},internalLinkSubtitle(){return"dir"===this.fileInfo.type?t("files_sharing","Only works for people with access to this folder"):t("files_sharing","Only works for people with access to this file")}},methods:{async copyLink(){try{await navigator.clipboard.writeText(this.internalLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}}}};var St=n(38779),It={};It.styleTagTransform=y(),It.setAttributes=g(),It.insert=p().bind(null,"head"),It.domAPI=u(),It.insertStyleElement=m(),c()(St.A,It),St.A&&St.A.locals&&St.A.locals;const kt=(0,_t.A)(xt,(function(){var t=this,e=t._self._c;return e("ul",[e("SharingEntrySimple",{ref:"shareEntrySimple",staticClass:"sharing-entry__internal",attrs:{title:t.t("files_sharing","Internal link"),subtitle:t.internalLinkSubtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-external icon-external-white"})]},proxy:!0}])},[t._v(" "),e("NcActionButton",{attrs:{title:t.copyLinkTooltip,"aria-label":t.copyLinkTooltip},on:{click:t.copyLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}])})],1)],1)}),[],!1,null,"57874406",null).exports;var Tt=n(17334),Nt=n.n(Tt),Dt=(n(48318),n(61338));const Pt=(0,o.KT)("apps/files_sharing/api/v1/shares"),Rt={methods:{async createShare(e){let{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d}=e;try{const t=await Z.Ay.post(Pt,{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d});if(!t?.data?.ocs)throw t;const e=new At(t.data.ocs.data);return(0,Dt.Ic)("files_sharing:share:created",{share:e}),e}catch(e){console.error("Error while creating share",e);const i=e?.response?.data?.ocs?.meta?.message;throw(0,mt.Qg)(i?t("files_sharing","Error creating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error creating the share"),{type:"error"}),e}},async deleteShare(e){try{const t=await Z.Ay.delete(Pt+`/${e}`);if(!t?.data?.ocs)throw t;return(0,Dt.Ic)("files_sharing:share:deleted",{id:e}),!0}catch(e){console.error("Error while deleting share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error deleting the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error deleting the share"),{type:"error"}),e}},async updateShare(e,i){try{const t=await Z.Ay.put(Pt+`/${e}`,i);if((0,Dt.Ic)("files_sharing:share:updated",{id:e}),t?.data?.ocs)return t.data.ocs.data;throw t}catch(e){if(console.error("Error while updating share",e),400!==e.response.status){const i=e?.response?.data?.ocs?.meta?.message;OC.Notification.showTemporary(i?t("files_sharing","Error updating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error updating the share"),{type:"error"})}const i=e.response.data.ocs.meta.message;throw new Error(i)}}}},Bt={NONE:0,READ:1,UPDATE:2,CREATE:4,DELETE:8,SHARE:16},Lt={READ_ONLY:Bt.READ,UPLOAD_AND_UPDATE:Bt.READ|Bt.UPDATE|Bt.CREATE|Bt.DELETE,FILE_DROP:Bt.CREATE,ALL:Bt.UPDATE|Bt.CREATE|Bt.READ|Bt.DELETE|Bt.SHARE,ALL_FILE:Bt.UPDATE|Bt.READ|Bt.SHARE};const Ot={methods:{async openSharingDetails(t){let e={};if(t.handler){const i={};this.suggestions&&(i.suggestions=this.suggestions,i.fileInfo=this.fileInfo,i.query=this.query);const n=await t.handler(i);e=this.mapShareRequestToShareObject(n)}else e=this.mapShareRequestToShareObject(t);if("dir"!==this.fileInfo.type){const t=e.permissions,i=t&~Bt.CREATE&~Bt.DELETE;t!==i&&(gt.debug("Removed create/delete permissions from file share (only valid for folders)"),e.permissions=i)}const i={fileInfo:this.fileInfo,share:e};this.$emit("open-sharing-details",i)},openShareDetailsForCustomSettings(t){t.setCustomPermissions=!0,this.openSharingDetails(t)},mapShareRequestToShareObject(t){if(t.id)return t;const e={attributes:[{value:!0,key:"download",scope:"permissions"}],hideDownload:!1,share_type:t.shareType,share_with:t.shareWith,is_no_user:t.isNoUser,user:t.shareWith,share_with_displayname:t.displayName,subtitle:t.subtitle,permissions:t.permissions??(new pt).defaultPermissions,expiration:""};return new At(e)}}},Mt={name:"SharingInput",components:{NcSelect:E.A},mixins:[Rt,Ot],props:{shares:{type:Array,default:()=>[],required:!0},linkShares:{type:Array,default:()=>[],required:!0},fileInfo:{type:Object,default:()=>{},required:!0},reshare:{type:At,default:null},canReshare:{type:Boolean,required:!0},isExternal:{type:Boolean,default:!1},placeholder:{type:String,default:""}},setup:()=>({shareInputId:`share-input-${Math.random().toString(36).slice(2,7)}`}),data:()=>({config:new pt,loading:!1,query:"",recommendations:[],ShareSearch:OCA.Sharing.ShareSearch.state,suggestions:[],value:null}),computed:{externalResults(){return this.ShareSearch.results},inputPlaceholder(){const e=this.config.isRemoteShareAllowed;return this.canReshare?this.placeholder?this.placeholder:e?t("files_sharing","Name, email, or Federated Cloud ID …"):t("files_sharing","Name or email …"):t("files_sharing","Resharing is not allowed")},isValidQuery(){return this.query&&""!==this.query.trim()&&this.query.length>this.config.minSearchStringLength},options(){return this.isValidQuery?this.suggestions:this.recommendations},noResultText(){return this.loading?t("files_sharing","Searching …"):t("files_sharing","No elements found.")}},mounted(){this.isExternal||this.getRecommendations()},methods:{onSelected(t){this.value=null,this.openSharingDetails(t)},async asyncFind(t){this.query=t.trim(),this.isValidQuery&&(this.loading=!0,await this.debounceGetSuggestions(t))},async getSuggestions(e){let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.loading=!0,!0===(0,dt.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];const r=[ot.I.Remote,ot.I.RemoteGroup];this.isExternal&&!this.config.showFederatedSharesAsInternal?n.push(...r):(n=n.concat([ot.I.User,ot.I.Group,ot.I.Team,ot.I.Room,ot.I.Guest,ot.I.Deck,ot.I.ScienceMesh]),this.config.showFederatedSharesAsInternal&&n.push(...r)),!0===(0,dt.F)().files_sharing.public.enabled&&this.isExternal&&n.push(ot.I.Email);let s=null;try{s=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"dir"===this.fileInfo.type?"folder":"file",search:e,lookup:i,perPage:this.config.maxAutocompleteResults,shareType:n}})}catch(t){return void console.error("Error fetching suggestions",t)}const a=s.data.ocs.data,l=s.data.ocs.data.exact;a.exact=[];const c=Object.values(l).reduce(((t,e)=>t.concat(e)),[]),h=Object.values(a).reduce(((t,e)=>t.concat(e)),[]),u=this.filterOutExistingShares(c).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),d=this.filterOutExistingShares(h).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),p=[];a.lookupEnabled&&!i&&p.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const f=this.externalResults.filter((t=>!t.condition||t.condition(this))),g=u.concat(d).concat(f).concat(p),A=g.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=g.map((t=>A[t.displayName]>1&&!t.desc?{...t,desc:t.shareWithDisplayNameUnique}:t)),this.loading=!1,console.info("suggestions",this.suggestions)},debounceGetSuggestions:Nt()((function(){this.getSuggestions(...arguments)}),300),async getRecommendations(){this.loading=!0;let t=null;try{t=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees_recommended"),{params:{format:"json",itemType:this.fileInfo.type}})}catch(t){return void console.error("Error fetching recommendations",t)}const e=this.externalResults.filter((t=>!t.condition||t.condition(this))),i=Object.values(t.data.ocs.data.exact).reduce(((t,e)=>t.concat(e)),[]);this.recommendations=this.filterOutExistingShares(i).map((t=>this.formatForMultiselect(t))).concat(e),this.loading=!1,console.info("recommendations",this.recommendations)},filterOutExistingShares(t){return t.reduce(((t,e)=>{if("object"!=typeof e)return t;try{if(e.value.shareType===ot.I.User){if(e.value.shareWith===(0,r.HW)().uid)return t;if(this.reshare&&e.value.shareWith===this.reshare.owner)return t}if(e.value.shareType===ot.I.Email){if(-1!==this.linkShares.map((t=>t.shareWith)).indexOf(e.value.shareWith.trim()))return t}else{const i=this.shares.reduce(((t,e)=>(t[e.shareWith]=e.type,t)),{}),n=e.value.shareWith.trim();if(n in i&&i[n]===e.value.shareType)return t}t.push(e)}catch{return t}return t}),[])},shareTypeToIcon(e){switch(e){case ot.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case ot.I.RemoteGroup:case ot.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case ot.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case ot.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case ot.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case ot.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case ot.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===ot.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==ot.I.Remote&&e.value.shareType!==ot.I.RemoteGroup||!e.value.server?e.value.shareType===ot.I.Email?e.value.shareWith:e.shareWithDescription??"":t("files_sharing","on {server}",{server:e.value.server}),{shareWith:e.value.shareWith,shareType:e.value.shareType,user:e.uuid||e.value.shareWith,isNoUser:e.value.shareType!==ot.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ut=n(6835),$t={};$t.styleTagTransform=y(),$t.setAttributes=g(),$t.insert=p().bind(null,"head"),$t.domAPI=u(),$t.insertStyleElement=m(),c()(Ut.A,$t),Ut.A&&Ut.A.locals&&Ut.A.locals;const Ft=(0,_t.A)(Mt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharing-search"},[e("label",{staticClass:"hidden-visually",attrs:{for:t.shareInputId}},[t._v("\n\t\t"+t._s(t.isExternal?t.t("files_sharing","Enter external recipients"):t.t("files_sharing","Search for internal recipients"))+"\n\t")]),t._v(" "),e("NcSelect",{ref:"select",staticClass:"sharing-search__input",attrs:{"input-id":t.shareInputId,disabled:!t.canReshare,loading:t.loading,filterable:!1,placeholder:t.inputPlaceholder,"clear-search-on-blur":()=>!1,"user-select":!0,options:t.options,"label-outside":!0},on:{search:t.asyncFind,"option:selected":t.onSelected},scopedSlots:t._u([{key:"no-options",fn:function(e){let{search:i}=e;return[t._v("\n\t\t\t"+t._s(i?t.noResultText:t.placeholder)+"\n\t\t")]}}]),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}})],1)}),[],!1,null,null,null).exports;var Vt=n(71225),jt=n(74479),zt=n(71418),qt=n(49264);const Ht=new pt;async function Gt(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Ht.passwordPolicy.api&&Ht.passwordPolicy.api.generate)try{const e=await Z.Ay.get(Ht.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,mt.Te)((0,b.Tl)("files_sharing","Password created successfully")),e.data.ocs.data.password}catch(e){console.info("Error generating password from password_policy",e),t&&(0,mt.Qg)((0,b.Tl)("files_sharing","Error generating password from password policy"))}const e=new Uint8Array(10),i=52/255;self.crypto.getRandomValues(e);let n="";for(let t=0;t<e.length;t++)n+="abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789".charAt(e[t]*i);return n}var Yt=n(77815);const Wt=(0,Yt.KU)(),Xt={mixins:[Rt],props:{fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new pt,node:null,ShareType:ot.I,errors:{},loading:!1,saving:!1,open:!1,updateQueue:new qt.A({concurrency:1}),reactiveState:this.share?.state}},computed:{path(){return(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/")},hasNote:{get(){return""!==this.share.note},set(t){this.share.note=t?null:""}},dateTomorrow:()=>new Date((new Date).setDate((new Date).getDate()+1)),lang(){const t=window.dayNamesShort?window.dayNamesShort:["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],e=window.monthNamesShort?window.monthNamesShort:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return{formatLocale:{firstDayOfWeek:window.firstDay?window.firstDay:0,monthsShort:e,weekdaysMin:t,weekdaysShort:t},monthFormat:"MMM"}},isNewShare(){return!this.share.id},isFolder(){return"dir"===this.fileInfo.type},isPublicShare(){const t=this.share.shareType??this.share.type;return[ot.I.Link,ot.I.Email].includes(t)},isRemoteShare(){return this.share.type===ot.I.RemoteGroup||this.share.type===ot.I.Remote},isShareOwner(){return this.share&&this.share.owner===(0,r.HW)().uid},isExpiryDateEnforced(){return this.isPublicShare?this.config.isDefaultExpireDateEnforced:this.isRemoteShare?this.config.isDefaultRemoteExpireDateEnforced:this.config.isDefaultInternalExpireDateEnforced},hasCustomPermissions(){return![Lt.ALL,Lt.READ_ONLY,Lt.FILE_DROP].includes(this.share.permissions)},maxExpirationDateEnforced(){return this.isExpiryDateEnforced?this.isPublicShare?this.config.defaultExpirationDate:this.isRemoteShare?this.config.defaultRemoteExpirationDateString:this.config.defaultInternalExpirationDate:null},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){t?(this.share.password=await Gt(!0),this.$set(this.share,"newPassword",this.share.password)):(this.share.password="",this.$delete(this.share,"newPassword"))}}},methods:{async getNode(){const t={path:this.path};try{this.node=await(async t=>{const e=(0,Yt.aN)(),i=await Wt.stat(`${(0,Yt.ei)()}${t}`,{details:!0,data:e});return(0,Yt.pO)(i.data)})(t.path),gt.info("Fetched node:",{node:this.node})}catch(t){gt.error("Error:",t)}},checkShare:t=>(!t.password||"string"==typeof t.password&&""!==t.password.trim())&&!(t.expirationDate&&!t.expirationDate.isValid()),formatDateToString:t=>new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())).toISOString().split("T")[0],onExpirationChange(t){if(!t)return this.share.expireDate=null,void this.$set(this.share,"expireDate",null);const e=t instanceof Date?t:new Date(t);this.share.expireDate=this.formatDateToString(e)},onNoteChange(t){this.$set(this.share,"newNote",t.trim())},onNoteSubmit(){this.share.newNote&&(this.share.note=this.share.newNote,this.$delete(this.share,"newNote"),this.queueUpdate("note"))},async onDelete(){try{this.loading=!0,this.open=!1,await this.deleteShare(this.share.id),console.debug("Share deleted",this.share.id);const e="file"===this.share.itemType?t("files_sharing",'File "{path}" has been unshared',{path:this.share.path}):t("files_sharing",'Folder "{path}" has been unshared',{path:this.share.path});(0,mt.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node)}catch(t){this.open=!0}finally{this.loading=!1}},queueUpdate(){for(var e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];if(0!==i.length){if(this.share.id){const e={};return i.forEach((t=>{null===this.share[t]||void 0===this.share[t]?e[t]="":"object"==typeof this.share[t]?e[t]=JSON.stringify(this.share[t]):e[t]=this.share[t].toString()})),this.updateQueue.add((async()=>{this.saving=!0,this.errors={};try{const t=await this.updateShare(this.share.id,e);i.indexOf("password")>=0&&(this.$delete(this.share,"newPassword"),this.share.passwordExpirationTime=t.password_expiration_time),this.$delete(this.errors,i[0]),(0,mt.Te)(this.updateSuccessMessage(i))}catch(e){gt.error("Could not update share",{error:e,share:this.share,propertyNames:i});const{message:n}=e;n&&""!==n?(this.onSyncError(i[0],n),(0,mt.Qg)(n)):(0,mt.Qg)(t("files_sharing","Could not update share"))}finally{this.saving=!1}}))}console.debug("Updated local share",this.share)}},updateSuccessMessage(e){if(1!==e.length)return t("files_sharing","Share saved");switch(e[0]){case"expireDate":return t("files_sharing","Share expiry date saved");case"hideDownload":return t("files_sharing","Share hide-download state saved");case"label":return t("files_sharing","Share label saved");case"note":return t("files_sharing","Share note for recipient saved");case"password":return t("files_sharing","Share password saved");case"permissions":return t("files_sharing","Share permissions saved");default:return t("files_sharing","Share saved")}},onSyncError(t,e){switch(this.open=!0,t){case"password":case"pending":case"expireDate":case"label":case"note":{this.$set(this.errors,t,e);let i=this.$refs[t];if(i){i.$el&&(i=i.$el);const t=i.querySelector(".focusable");t&&t.focus()}break}case"sendPasswordByTalk":this.$set(this.errors,t,e),this.share.sendPasswordByTalk=!this.share.sendPasswordByTalk}},debounceQueueUpdate:Nt()((function(t){this.queueUpdate(t)}),500)}},Qt={name:"SharingEntryInherited",components:{NcActionButton:X.A,NcActionLink:jt.A,NcActionText:zt.A,NcAvatar:_.A,SharingEntrySimple:Et},mixins:[Xt],props:{share:{type:At,required:!0}},computed:{viaFileTargetUrl(){return(0,o.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,Vt.P8)(this.share.viaPath)}}};var Zt=n(59879),Kt={};Kt.styleTagTransform=y(),Kt.setAttributes=g(),Kt.insert=p().bind(null,"head"),Kt.domAPI=u(),Kt.insertStyleElement=m(),c()(Zt.A,Kt),Zt.A&&Zt.A.locals&&Zt.A.locals;const Jt=(0,_t.A)(Qt,(function(){var t=this,e=t._self._c;return e("SharingEntrySimple",{key:t.share.id,staticClass:"sharing-entry__inherited",attrs:{title:t.share.shareWithDisplayName},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.share.shareWith,"display-name":t.share.shareWithDisplayName}})]},proxy:!0}])},[t._v(" "),e("NcActionText",{attrs:{icon:"icon-user"}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Added by {initiator}",{initiator:t.share.ownerDisplayName}))+"\n\t")]),t._v(" "),t.share.viaPath&&t.share.viaFileid?e("NcActionLink",{attrs:{icon:"icon-folder",href:t.viaFileTargetUrl}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Via “{folder}”",{folder:t.viaFolderName}))+"\n\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{icon:"icon-close"},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t")]):t._e()],1)}),[],!1,null,"fe8ed59e",null).exports,te={name:"SharingInherited",components:{NcActionButton:X.A,SharingEntryInherited:Jt,SharingEntrySimple:Et},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({loaded:!1,loading:!1,showInheritedShares:!1,shares:[]}),computed:{showInheritedSharesIcon(){return this.loading?"icon-loading-small":this.showInheritedShares?"icon-triangle-n":"icon-triangle-s"},mainTitle:()=>t("files_sharing","Others with access"),subTitle(){return this.showInheritedShares&&0===this.shares.length?t("files_sharing","No other accounts with access found"):""},toggleTooltip(){return"dir"===this.fileInfo.type?t("files_sharing","Toggle list of others with access to this directory"):t("files_sharing","Toggle list of others with access to this file")},fullPath(){return`${this.fileInfo.path}/${this.fileInfo.name}`.replace("//","/")}},watch:{fileInfo(){this.resetState()}},methods:{toggleInheritedShares(){this.showInheritedShares=!this.showInheritedShares,this.showInheritedShares?this.fetchInheritedShares():this.resetState()},async fetchInheritedShares(){this.loading=!0;try{const t=(0,o.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await Z.Ay.get(t);this.shares=e.data.ocs.data.map((t=>new At(t))).sort(((t,e)=>e.createdTime-t.createdTime)),console.info(this.shares),this.loaded=!0}catch(e){OC.Notification.showTemporary(t("files_sharing","Unable to fetch inherited shares"),{type:"error"})}finally{this.loading=!1}},resetState(){this.loaded=!1,this.loading=!1,this.showInheritedShares=!1,this.shares=[]},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}};var ee=n(56467),ie={};ie.styleTagTransform=y(),ie.setAttributes=g(),ie.insert=p().bind(null,"head"),ie.domAPI=u(),ie.insertStyleElement=m(),c()(ee.A,ie),ee.A&&ee.A.locals&&ee.A.locals;const ne=(0,_t.A)(te,(function(){var t=this,e=t._self._c;return t.shares.length?e("ul",{attrs:{id:"sharing-inherited-shares"}},[e("SharingEntrySimple",{staticClass:"sharing-entry__inherited",attrs:{title:t.mainTitle,subtitle:t.subTitle,"aria-expanded":t.showInheritedShares},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-shared icon-more-white"})]},proxy:!0}],null,!1,1184892072)},[t._v(" "),e("NcActionButton",{attrs:{icon:t.showInheritedSharesIcon,"aria-label":t.toggleTooltip,title:t.toggleTooltip},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.toggleInheritedShares.apply(null,arguments)}}})],1),t._v(" "),t._l(t.shares,(function(i){return e("SharingEntryInherited",{key:i.id,attrs:{"file-info":t.fileInfo,share:i},on:{"remove:share":t.removeShare}})}))],2):t._e()}),[],!1,null,"a6cc72e6",null).exports;var re=n(17816),se=n.n(re),ae=n(97691),oe=n(44131),le=n(15502),ce=n(94219);const he={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,_t.A)(he,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon tune-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,de={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pe=(0,_t.A)(de,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,fe={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ge=(0,_t.A)(fe,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon qrcode-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ae={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=(0,_t.A)(Ae,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon exclamation-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ve={name:"LockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ye=(0,_t.A)(ve,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon lock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ce={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},we=(0,_t.A)(Ce,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon check-bold-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var be=n(66001),_e=n(96078);const Ee={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xe=(0,_t.A)(Ee,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon triangle-small-down-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M8 9H16L12 16"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Se={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=(0,_t.A)(Se,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var ke=n(2413);const Te={name:"FileUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ne=(0,_t.A)(Te,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon file-upload-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,De={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:xe,NcActions:W.A,NcActionButton:X.A},mixins:[Xt,Ot],props:{share:{type:Object,required:!0}},emits:["open-sharing-details"],data:()=>({selectedOption:""}),computed:{ariaLabel(){return t("files_sharing",'Quick share options, the current selected is "{selectedOption}"',{selectedOption:this.selectedOption})},canViewText:()=>t("files_sharing","View only"),canEditText:()=>t("files_sharing","Can edit"),fileDropText:()=>t("files_sharing","File request"),customPermissionsText:()=>t("files_sharing","Custom permissions"),preSelectedOption(){return(this.share.permissions&~Bt.SHARE)===Lt.READ_ONLY?this.canViewText:this.share.permissions===Lt.ALL||this.share.permissions===Lt.ALL_FILE?this.canEditText:(this.share.permissions&~Bt.SHARE)===Lt.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const t=[{label:this.canViewText,icon:Ie},{label:this.canEditText,icon:ke.A}];return this.supportsFileDrop&&t.push({label:this.fileDropText,icon:Ne}),t.push({label:this.customPermissionsText,icon:ue}),t},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const t=this.share.type??this.share.shareType;return[ot.I.Link,ot.I.Email].includes(t)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?Lt.ALL:Lt.ALL_FILE;case this.fileDropText:return Lt.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return Lt.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,Dt.B1)("update:share",(t=>{t.id===this.share.id&&(this.share.permissions=t.permissions,this.selectedOption=this.preSelectedOption)}))},unmounted(){(0,Dt.al)("update:share")},methods:{selectOption(t){this.selectedOption=t,t===this.customPermissionsText?this.$emit("open-sharing-details"):(this.share.permissions=this.dropDownPermissionValue,this.queueUpdate("permissions"),this.$refs.quickShareActions.$refs.menuButton.$el.focus())}}},Pe=De;var Re=n(88522),Be={};Be.styleTagTransform=y(),Be.setAttributes=g(),Be.insert=p().bind(null,"head"),Be.domAPI=u(),Be.insertStyleElement=m(),c()(Re.A,Be),Re.A&&Re.A.locals&&Re.A.locals;const Le=(0,_t.A)(Pe,(function(){var t=this,e=t._self._c;return e("NcActions",{ref:"quickShareActions",staticClass:"share-select",attrs:{"menu-name":t.selectedOption,"aria-label":t.ariaLabel,type:"tertiary-no-background",disabled:!t.share.canEdit,"force-name":""},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DropdownIcon",{attrs:{size:15}})]},proxy:!0}])},[t._v(" "),t._l(t.options,(function(i){return e("NcActionButton",{key:i.label,attrs:{type:"radio","model-value":i.label===t.selectedOption,"close-after-click":""},on:{click:function(e){return t.selectOption(i.label)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.icon,{tag:"component"})]},proxy:!0}],null,!0)},[t._v("\n\t\t"+t._s(i.label)+"\n\t")])}))],2)}),[],!1,null,"2aa230f1",null).exports;var Oe=n(4604);const Me={name:"ClockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ue=(0,_t.A)(Me,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon clock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,$e={name:"ShareExpiryTime",components:{NcButton:ut.A,NcPopover:ct.N,NcDateTime:Oe.A,ClockIcon:Ue},props:{share:{type:Object,required:!0}},computed:{expiryTime(){return this.share?.expireDate?new Date(this.share.expireDate).getTime():null},timeFormat:()=>({dateStyle:"full",timeStyle:"short"})}};var Fe=n(38310),Ve={};Ve.styleTagTransform=y(),Ve.setAttributes=g(),Ve.insert=p().bind(null,"head"),Ve.domAPI=u(),Ve.insertStyleElement=m(),c()(Fe.A,Ve),Fe.A&&Fe.A.locals&&Fe.A.locals;const je=(0,_t.A)($e,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"share-expiry-time"},[e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[t.expiryTime?e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary","aria-label":t.t("files_sharing","Share expiration: ")+new Date(t.expiryTime).toLocaleString()},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ClockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,3754271979)}):t._e()]},proxy:!0}])},[t._v(" "),e("h3",{staticClass:"hint-heading"},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Share Expiration"))+"\n\t\t")]),t._v(" "),t.expiryTime?e("p",{staticClass:"hint-body"},[e("NcDateTime",{attrs:{timestamp:t.expiryTime,format:t.timeFormat,"relative-time":!1}}),t._v(" ("),e("NcDateTime",{attrs:{timestamp:t.expiryTime}}),t._v(")\n\t\t")],1):t._e()])],1)}),[],!1,null,"66d8c844",null).exports,ze={name:"ExternalShareAction",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null}},computed:{data(){return this.action.data(this)}}},qe=(0,_t.A)(ze,(function(){var t=this;return(0,t._self._c)(t.data.is,t._g(t._b({tag:"Component"},"Component",t.data,!1),t.action.handlers),[t._v("\n\t"+t._s(t.data.text)+"\n")])}),[],!1,null,null,null).exports,He={name:"SharingEntryLink",components:{ExternalShareAction:qe,NcActions:W.A,NcActionButton:X.A,NcActionCheckbox:ae.N,NcActionInput:oe.A,NcActionLink:jt.A,NcActionText:zt.A,NcActionSeparator:le.A,NcAvatar:_.A,NcDialog:ce.A,VueQrcode:se(),Tune:ue,IconCalendarBlank:pe,IconQr:ge,ErrorIcon:me,LockIcon:ye,CheckIcon:we,ClipboardIcon:yt.A,CloseIcon:be.A,PlusIcon:_e.A,SharingEntryQuickShareSelect:Le,ShareExpiryTime:je},mixins:[Xt,Ot],props:{canReshare:{type:Boolean,default:!0},index:{type:Number,default:null}},data:()=>({shareCreationComplete:!1,copySuccess:!0,copied:!1,defaultExpirationDateEnabled:!1,pending:!1,ExternalLegacyLinkActions:OCA.Sharing.ExternalLinkActions.state,ExternalShareActions:OCA.Sharing.ExternalShareActions.state,logger:(0,ft.YK)().setApp("files_sharing").detectUser().build(),showQRCode:!1}),computed:{title(){if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?t("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName}):t("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName});if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?t("files_sharing","File request ({label})",{label:this.share.label.trim()}):t("files_sharing","Mail share ({label})",{label:this.share.label.trim()}):t("files_sharing","Share link ({label})",{label:this.share.label.trim()});if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?t("files_sharing","File request"):t("files_sharing","Mail share");if(null===this.index)return t("files_sharing","Share link")}return this.index>=1?t("files_sharing","Share link ({index})",{index:this.index}):t("files_sharing","Create public link")},subtitle(){return this.isEmailShareType&&this.title!==this.share.shareWith?this.share.shareWith:null},passwordExpirationTime(){if(null===this.share.passwordExpirationTime)return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword)},pendingDataIsMissing(){return this.pendingPassword||this.pendingEnforcedPassword||this.pendingDefaultExpirationDate||this.pendingEnforcedExpirationDate},pendingPassword(){return this.config.enableLinkPasswordByDefault&&this.isPendingShare},pendingEnforcedPassword(){return this.config.enforcePasswordForPublicLink&&this.isPendingShare},pendingEnforcedExpirationDate(){return this.config.isDefaultExpireDateEnforced&&this.isPendingShare},pendingDefaultExpirationDate(){return(this.config.defaultExpirationDate instanceof Date||!isNaN(new Date(this.config.defaultExpirationDate).getTime()))&&this.isPendingShare},isPendingShare(){return!(!this.share||this.share.id)},sharePolicyHasEnforcedProperties(){return this.config.enforcePasswordForPublicLink||this.config.isDefaultExpireDateEnforced},enforcedPropertiesMissing(){if(!this.sharePolicyHasEnforcedProperties)return!1;if(!this.share)return!0;if(this.share.id)return!0;const t=this.config.enforcePasswordForPublicLink&&!this.share.password,e=this.config.isDefaultExpireDateEnforced&&!this.share.expireDate;return t||e},hasUnsavedPassword(){return void 0!==this.share.newPassword},shareLink(){return(0,o.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,o.$_)()})},actionsTooltip(){return t("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing",'Copy public link of "{title}" to clipboard',{title:this.title})},externalLegacyLinkActions(){return this.ExternalLegacyLinkActions.actions},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&!t.advanced))},isPasswordPolicyEnabled(){return"object"==typeof this.config.passwordPolicy},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))},isFileRequest(){return this.share.isFileRequest}},mounted(){this.defaultExpirationDateEnabled=this.config.defaultExpirationDate instanceof Date,this.share&&this.isNewShare&&(this.share.expireDate=this.defaultExpirationDateEnabled?this.formatDateToString(this.config.defaultExpirationDate):"")},methods:{shareRequiresReview(t){return!t&&(this.defaultExpirationDateEnabled||this.config.enableLinkPasswordByDefault)},async onNewLinkShare(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.logger.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const i={share_type:ot.I.Link};if(this.config.isDefaultExpireDateEnforced&&(i.expiration=this.formatDateToString(this.config.defaultExpirationDate)),this.logger.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===e)){this.pending=!0,this.shareCreationComplete=!1,this.logger.info("Share policy requires a review or has mandated properties (password, expirationDate)..."),(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&(i.password=await Gt(!0));const t=new At(i),e=await new Promise((e=>{this.$emit("add:share",t,e)}));this.open=!1,this.pending=!1,e.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{this.logger.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,this.logger.info("Share created on server",this.share)}catch(t){return this.pending=!1,this.logger.error("Error creating share",t),!1}return!0}return this.open=!0,(0,mt.Qg)(t("files_sharing","Error, please enter proper password and/or expiration date")),!1}const e=new At(i);await this.pushNewLinkShare(e),this.shareCreationComplete=!0}},async pushNewLinkShare(e,i){try{if(this.loading)return!0;this.loading=!0,this.errors={};const n={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:ot.I.Link,password:e.password,expireDate:e.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};console.debug("Creating link share with options",n);const r=await this.createShare(n);let s;this.open=!1,this.shareCreationComplete=!0,console.debug("Link share created",r),s=i?await new Promise((t=>{this.$emit("update:share",r,t)})):await new Promise((t=>{this.$emit("add:share",r,t)})),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||s.copyLink(),(0,mt.Te)(t("files_sharing","Link share created"))}catch(e){const i=e?.response?.data?.ocs?.meta?.message;if(!i)return(0,mt.Qg)(t("files_sharing","Error while creating the share")),void console.error(e);throw i.match(/password/i)?this.onSyncError("password",i):i.match(/date/i)?this.onSyncError("expireDate",i):this.onSyncError("pending",i),e}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.copyButton.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}},onPasswordChange(t){this.$set(this.share,"newPassword",t)},onPasswordDisable(){this.share.password="",this.$delete(this.share,"newPassword"),this.share.id&&this.queueUpdate("password")},onPasswordSubmit(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim(),this.queueUpdate("password"))},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},onMenuClose(){this.onPasswordSubmit(),this.onNoteSubmit()},onExpirationDateToggleUpdate(t){this.share.expireDate=t?this.formatDateToString(this.config.defaultExpirationDate):""},expirationDateChanged(t){const e=t?.target?.value,i=!!e&&!isNaN(new Date(e).getTime());this.defaultExpirationDateEnabled=i},onCancel(){this.shareCreationComplete||this.$emit("remove:share",this.share)}}},Ge=He;var Ye=n(96819),We={};We.styleTagTransform=y(),We.setAttributes=g(),We.insert=p().bind(null,"head"),We.domAPI=u(),We.insertStyleElement=m(),c()(Ye.A,We),Ye.A&&Ye.A.locals&&Ye.A.locals;const Xe={name:"SharingLinkList",components:{SharingEntryLink:(0,_t.A)(Ge,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry sharing-entry__link",class:{"sharing-entry--share":t.share}},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":!0,"icon-class":t.isEmailShareType?"avatar-link-share icon-mail-white":"avatar-link-share icon-public-white"}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title",attrs:{title:t.title}},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t\t"+t._s(t.subtitle)+"\n\t\t\t")]):t._e(),t._v(" "),t.share&&void 0!==t.share.permissions?e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}}):t._e()],1),t._v(" "),e("div",{staticClass:"sharing-entry__actions"},[t.share&&t.share.expireDate?e("ShareExpiryTime",{attrs:{share:t.share}}):t._e(),t._v(" "),e("div",[t.share&&(!t.isEmailShareType||t.isFileRequest)&&t.share.token?e("NcActions",{ref:"copyButton",staticClass:"sharing-entry__copy"},[e("NcActionButton",{attrs:{"aria-label":t.copyLinkTooltip,title:t.copyLinkTooltip,href:t.shareLink},on:{click:function(e){return e.preventDefault(),t.copyLink.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4269614823)})],1):t._e()],1)],1)]),t._v(" "),!t.pending&&t.pendingDataIsMissing?e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onCancel}},[t.errors.pending?e("NcActionText",{staticClass:"error",scopedSlots:t._u([{key:"icon",fn:function(){return[e("ErrorIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1966124155)},[t._v("\n\t\t\t"+t._s(t.errors.pending)+"\n\t\t")]):e("NcActionText",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Please enter the following required information before creating the share"))+"\n\t\t")]),t._v(" "),t.pendingPassword?e("NcActionCheckbox",{staticClass:"share-link-password-checkbox",attrs:{checked:t.isPasswordProtected,disabled:t.config.enforcePasswordForPublicLink||t.saving},on:{"update:checked":function(e){t.isPasswordProtected=e},uncheck:t.onPasswordDisable}},[t._v("\n\t\t\t"+t._s(t.config.enforcePasswordForPublicLink?t.t("files_sharing","Password protection (enforced)"):t.t("files_sharing","Password protection"))+"\n\t\t")]):t._e(),t._v(" "),t.pendingEnforcedPassword||t.share.password?e("NcActionInput",{staticClass:"share-link-password",attrs:{label:t.t("files_sharing","Enter a password"),value:t.share.password,disabled:t.saving,required:t.config.enableLinkPasswordByDefault||t.config.enforcePasswordForPublicLink,minlength:t.isPasswordPolicyEnabled&&t.config.passwordPolicy.minLength,autocomplete:"new-password"},on:{"update:value":function(e){return t.$set(t.share,"password",e)},submit:function(e){return t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("LockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2056568168)}):t._e(),t._v(" "),t.pendingDefaultExpirationDate?e("NcActionCheckbox",{staticClass:"share-link-expiration-date-checkbox",attrs:{checked:t.defaultExpirationDateEnabled,disabled:t.pendingEnforcedExpirationDate||t.saving},on:{"update:checked":function(e){t.defaultExpirationDateEnabled=e},"update:model-value":t.onExpirationDateToggleUpdate}},[t._v("\n\t\t\t"+t._s(t.config.isDefaultExpireDateEnforced?t.t("files_sharing","Enable link expiration (enforced)"):t.t("files_sharing","Enable link expiration"))+"\n\t\t")]):t._e(),t._v(" "),(t.pendingDefaultExpirationDate||t.pendingEnforcedExpirationDate)&&t.defaultExpirationDateEnabled?e("NcActionInput",{staticClass:"share-link-expire-date",attrs:{"data-cy-files-sharing-expiration-date-input":"",label:t.pendingEnforcedExpirationDate?t.t("files_sharing","Enter expiration date (enforced)"):t.t("files_sharing","Enter expiration date"),disabled:t.saving,"is-native-picker":!0,"hide-label":!0,value:new Date(t.share.expireDate),type:"date",min:t.dateTomorrow,max:t.maxExpirationDateEnforced},on:{"update:model-value":t.onExpirationChange,change:t.expirationDateChanged},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlank",{attrs:{size:20}})]},proxy:!0}],null,!1,3418578971)}):t._e(),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CheckIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2630571749)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Create share"))+"\n\t\t")]),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onCancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t")])],1):t.loading?e("div",{staticClass:"icon-loading-small sharing-entry__loading"}):e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onMenuClose}},[t.share?[t.share.canEdit&&t.canReshare?[e("NcActionButton",{attrs:{disabled:t.saving,"close-after-click":!0},on:{click:function(e){return e.preventDefault(),t.openSharingDetails.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Tune",{attrs:{size:20}})]},proxy:!0}],null,!1,1300586850)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Customize link"))+"\n\t\t\t\t")])]:t._e(),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){e.preventDefault(),t.showQRCode=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconQr",{attrs:{size:20}})]},proxy:!0}],null,!1,1082198240)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Generate QR code"))+"\n\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),t._l(t.externalLegacyLinkActions,(function(i,n){let{icon:r,url:s,name:a}=i;return e("NcActionLink",{key:n,attrs:{href:s(t.shareLink),icon:r,target:"_blank"}},[t._v("\n\t\t\t\t"+t._s(a)+"\n\t\t\t")])})),t._v(" "),!t.isEmailShareType&&t.canReshare?e("NcActionButton",{staticClass:"new-share-link",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("PlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2953566425)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Add another link"))+"\n\t\t\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{disabled:t.saving},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t\t\t")]):t._e()]:t.canReshare?e("NcActionButton",{staticClass:"new-share-link",attrs:{title:t.t("files_sharing","Create a new share link"),"aria-label":t.t("files_sharing","Create a new share link"),icon:t.loading?"icon-loading-small":"icon-add"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}}}):t._e()],2),t._v(" "),t.showQRCode?e("NcDialog",{attrs:{size:"normal",open:t.showQRCode,name:t.title,"close-on-click-outside":!0},on:{"update:open":function(e){t.showQRCode=e},close:function(e){t.showQRCode=!1}}},[e("div",{staticClass:"qr-code-dialog"},[e("VueQrcode",{staticClass:"qr-code-dialog__img",attrs:{tag:"img",value:t.shareLink}})],1)]):t._e()],1)}),[],!1,null,"4d06a90a",null).exports},mixins:[Ot],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,dt.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===ot.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:b.t,addShare(t,e){this.shares.push(t),this.awaitForShare(t,e)},awaitForShare(t,e){this.$nextTick((()=>{const i=this.$children.find((e=>e.share===t));i&&e(i)}))},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}},Qe=(0,_t.A)(Xe,(function(){var t=this,e=t._self._c;return t.canLinkShare?e("ul",{staticClass:"sharing-link-list",attrs:{"aria-label":t.t("files_sharing","Link shares")}},[!t.hasLinkShares&&t.canReshare?e("SharingEntryLink",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo},on:{"add:share":t.addShare}}):t._e(),t._v(" "),t.hasShares?t._l(t.shares,(function(i,n){return e("SharingEntryLink",{key:i.id,attrs:{index:t.shares.length>1?n+1:null,"can-reshare":t.canReshare,share:t.shares[n],"file-info":t.fileInfo},on:{"update:share":[function(e){return t.$set(t.shares,n,e)},function(e){return t.awaitForShare(...arguments)}],"add:share":function(e){return t.addShare(...arguments)},"remove:share":t.removeShare,"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})):t._e()],2):t._e()}),[],!1,null,null,null).exports;var Ze=n(26690);const Ke={name:"SharingEntry",components:{NcButton:ut.A,NcAvatar:_.A,DotsHorizontalIcon:Ze.A,NcSelect:E.A,ShareExpiryTime:je,SharingEntryQuickShareSelect:Le},mixins:[Xt,Ot],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===ot.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===ot.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===ot.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===ot.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===ot.I.Guest&&(e+=` (${t("files_sharing","guest")})`),!this.isShareOwner&&this.share.ownerDisplayName&&(e+=" "+t("files_sharing","by {initiator}",{initiator:this.share.ownerDisplayName})),e},tooltip(){if(this.share.owner!==this.share.uidFileOwner){const e={user:this.share.shareWithDisplayName,owner:this.share.ownerDisplayName};return this.share.type===ot.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===ot.I.Room?t("files_sharing","Shared with the conversation {user} by {owner}",e):t("files_sharing","Shared with {user} by {owner}",e)}return null},hasStatus(){return this.share.type===ot.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Je=n(70162),ti={};ti.styleTagTransform=y(),ti.setAttributes=g(),ti.insert=p().bind(null,"head"),ti.domAPI=u(),ti.insertStyleElement=m(),c()(Je.A,ti),Je.A&&Je.A.locals&&Je.A.locals;const ei={name:"SharingList",components:{SharingEntry:(0,_t.A)(Ke,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.type!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e(t.share.shareWithLink?"a":"div",{tag:"component",staticClass:"sharing-entry__summary__desc",attrs:{title:t.tooltip,"aria-label":t.tooltip,href:t.share.shareWithLink}},[e("span",[t._v(t._s(t.title)+"\n\t\t\t\t"),t.isUnique?t._e():e("span",{staticClass:"sharing-entry__summary__desc-unique"},[t._v(" ("+t._s(t.share.shareWithDisplayNameUnique)+")")]),t._v(" "),t.hasStatus&&t.share.status.message?e("small",[t._v("("+t._s(t.share.status.message)+")")]):t._e()])]),t._v(" "),e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}})],1),t._v(" "),t.share&&t.share.expireDate?e("ShareExpiryTime",{attrs:{share:t.share}}):t._e(),t._v(" "),t.share.canEdit?e("NcButton",{staticClass:"sharing-entry__action",attrs:{"data-cy-files-sharing-share-actions":"","aria-label":t.t("files_sharing","Open Sharing Details"),type:"tertiary"},on:{click:function(e){return t.openSharingDetails(t.share)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1700783217)}):t._e()],1)}),[],!1,null,"2dbd45b5",null).exports},mixins:[Ot],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0}},setup:()=>({t:b.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===ot.I.User&&t.shareWithDisplayName===e.shareWithDisplayName)).length<=1}}},ii=(0,_t.A)(ei,(function(){var t=this,e=t._self._c;return e("ul",{staticClass:"sharing-sharee-list",attrs:{"aria-label":t.t("files_sharing","Shares")}},t._l(t.shares,(function(i){return e("SharingEntry",{key:i.id,attrs:{"file-info":t.fileInfo,share:i,"is-unique":t.isUnique(i)},on:{"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})),1)}),[],!1,null,null,null).exports;var ni=n(32073),ri=n(48046),si=n(16879),ai=n(59892),oi=n(16044),li=n(177);const ci={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hi=(0,_t.A)(ci,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ui={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},di=(0,_t.A)(ui,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon email-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var pi=n(36600),fi=n(43261);const gi={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ai=(0,_t.A)(gi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon share-circle-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,mi={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vi=(0,_t.A)(mi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,yi={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ci=(0,_t.A)(yi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var wi=n(65422),bi=n(25384),_i=n(33388);const Ei={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xi=(0,_t.A)(Ei,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Si={name:"SharingDetailsTab",components:{NcAvatar:_.A,NcButton:ut.A,NcCheckboxRadioSwitch:ni.A,NcDateTimePickerNative:ri.A,NcInputField:si.A,NcLoadingIcon:ai.A,NcPasswordField:oi.A,NcTextArea:li.A,CloseIcon:be.A,CircleIcon:hi,EditIcon:ke.A,ExternalShareAction:qe,LinkIcon:pi.A,GroupIcon:fi.A,ShareIcon:Ai,UserIcon:vi,UploadIcon:wi.A,ViewIcon:Ci,MenuDownIcon:bi.A,MenuUpIcon:_i.A,DotsHorizontalIcon:Ze.A,Refresh:xi},mixins:[Rt,Xt],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:Lt.ALL.toString(),revertSharingPermission:Lt.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:Lt,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case ot.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case ot.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case ot.I.Link:return t("files_sharing","Share link");case ot.I.Group:return t("files_sharing","Share with group");case ot.I.Room:return t("files_sharing","Share in conversation");case ot.I.Remote:{const[e,i]=this.share.shareWith.split("@");return t("files_sharing","Share with {user} on remote server {server}",{user:e,server:i})}case ot.I.RemoteGroup:return t("files_sharing","Share with remote group");case ot.I.Guest:return t("files_sharing","Share with guest");default:return this.share.id?t("files_sharing","Update share"):t("files_sharing","Create share")}},allPermissions(){return this.isFolder?this.bundledPermissions.ALL.toString():this.bundledPermissions.ALL_FILE.toString()},canEdit:{get(){return this.share.hasUpdatePermission},set(t){this.updateAtomicPermissions({isEditChecked:t})}},canCreate:{get(){return this.share.hasCreatePermission},set(t){this.updateAtomicPermissions({isCreateChecked:t})}},canDelete:{get(){return this.share.hasDeletePermission},set(t){this.updateAtomicPermissions({isDeleteChecked:t})}},canReshare:{get(){return this.share.hasSharePermission},set(t){this.updateAtomicPermissions({isReshareChecked:t})}},showInGridView:{get(){return this.getShareAttribute("config","grid_view",!1)},set(t){this.setShareAttribute("config","grid_view",t)}},canDownload:{get(){return this.getShareAttribute("permissions","download",!0)},set(t){this.setShareAttribute("permissions","download",t)}},hasRead:{get(){return this.share.hasReadPermission},set(t){this.updateAtomicPermissions({isReadChecked:t})}},hasExpirationDate:{get(){return this.isValidShareAttribute(this.share.expireDate)},set(t){this.share.expireDate=t?this.formatDateToString(this.defaultExpiryDate):""}},isFolder(){return"dir"===this.fileInfo.type},isSetDownloadButtonVisible(){return this.isFolder||["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation"].includes(this.fileInfo.mimetype)},isPasswordEnforced(){return this.isPublicShare&&this.config.enforcePasswordForPublicLink},defaultExpiryDate(){return(this.isGroupShare||this.isUserShare)&&this.config.isDefaultInternalExpireDateEnabled?new Date(this.config.defaultInternalExpirationDate):this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?new Date(this.config.defaultRemoteExpireDateEnabled):this.isPublicShare&&this.config.isDefaultExpireDateEnabled?new Date(this.config.defaultExpirationDate):new Date((new Date).setDate((new Date).getDate()+1))},isUserShare(){return this.share.type===ot.I.User},isGroupShare(){return this.share.type===ot.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email)},hasFileDropPermissions(){return this.share.permissions===this.bundledPermissions.FILE_DROP},shareButtonText(){return this.isNewShare?t("files_sharing","Save share"):t("files_sharing","Update share")},resharingIsPossible(){return this.config.isResharingAllowed&&this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email},canSetEdit(){return this.fileInfo.sharePermissions&OC.PERMISSION_UPDATE||this.canEdit},canSetCreate(){return this.fileInfo.sharePermissions&OC.PERMISSION_CREATE||this.canCreate},canSetDelete(){return this.fileInfo.sharePermissions&OC.PERMISSION_DELETE||this.canDelete},canSetReshare(){return this.fileInfo.sharePermissions&OC.PERMISSION_SHARE||this.canReshare},canSetDownload(){return this.fileInfo.canDownload()||this.canDownload},canRemoveReadPermission(){return this.allowsFileDrop&&(this.share.type===ot.I.Link||this.share.type===ot.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPublicShare||!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword||void 0===OC.appswebroots.spreed)},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"download"===t.key&&"permissions"===t.scope&&!1===t.value))},customPermissionsList(){const t={[Bt.READ]:this.t("files_sharing","Read"),[Bt.CREATE]:this.t("files_sharing","Create"),[Bt.UPDATE]:this.t("files_sharing","Edit"),[Bt.SHARE]:this.t("files_sharing","Share"),[Bt.DELETE]:this.t("files_sharing","Delete")};return[Bt.READ,...this.isFolder?[Bt.CREATE]:[],Bt.UPDATE,...this.resharingIsPossible?[Bt.SHARE]:[],...this.isFolder?[Bt.DELETE]:[]].filter((t=>{return e=this.share.permissions,i=t,e!==Bt.NONE&&(e&i)===i;var e,i})).map(((e,i)=>0===i?t[e]:t[e].toLocaleLowerCase((0,b.Z0)()))).join(", ")},advancedControlExpandedValue(){return this.advancedSectionAccordionExpanded?"true":"false"},errorPasswordLabel(){if(this.passwordError)return t("files_sharing","Password field cannot be empty")},passwordHint(){if(!this.isNewShare&&!this.hasUnsavedPassword)return t("files_sharing","Replace current password")},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&t.advanced))}},watch:{setCustomPermissions(t){this.sharingPermission=t?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),gt.debug("Share object received",{share:this.share}),gt.debug("Configuration object received",{config:this.config})},mounted(){this.$refs.quickPermissions?.querySelector("input:checked")?.focus()},methods:{setShareAttribute(t,e,i){this.share.attributes||this.$set(this.share,"attributes",[]);const n=this.share.attributes.find((i=>i.scope===t||i.key===e));n?n.value=i:this.share.attributes.push({scope:t,key:e,value:i})},getShareAttribute(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const n=this.share.attributes?.find((i=>i.scope===t&&i.key===e));return n?.value??i},async generateNewToken(){if(!this.loadingToken){this.loadingToken=!0;try{this.share.token=await(async()=>{const{data:t}=await Z.Ay.get((0,o.KT)("/apps/files_sharing/api/v1/token"));return t.ocs.data.token})()}catch(e){(0,mt.Qg)(t("files_sharing","Failed to generate a new token"))}this.loadingToken=!1}},cancel(){this.share.token=this.initialToken,this.$emit("close-sharing-details")},updateAtomicPermissions(){let{isReadChecked:t=this.hasRead,isEditChecked:e=this.canEdit,isCreateChecked:i=this.canCreate,isDeleteChecked:n=this.canDelete,isReshareChecked:r=this.canReshare}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.isFolder||!i&&!n||(gt.debug("Ignoring create/delete permissions for file share — only available for folders"),i=!1,n=!1);const s=(t?Bt.READ:0)|(i?Bt.CREATE:0)|(n?Bt.DELETE:0)|(e?Bt.UPDATE:0)|(r?Bt.SHARE:0);this.share.permissions=s},expandCustomPermissions(){this.advancedSectionAccordionExpanded||(this.advancedSectionAccordionExpanded=!0),this.toggleCustomPermissions()},toggleCustomPermissions(t){const e="custom"===this.sharingPermission;this.revertSharingPermission=e?"custom":t,this.setCustomPermissions=e},async initializeAttributes(){if(this.isNewShare)return(this.config.enableLinkPasswordByDefault||this.isPasswordEnforced)&&this.isPublicShare&&(this.$set(this.share,"newPassword",await Gt(!0)),this.$set(this.share,"password",this.share.newPassword),this.advancedSectionAccordionExpanded=!0),this.isPublicShare&&this.config.isDefaultExpireDateEnabled?this.share.expireDate=this.config.defaultExpirationDate.toDateString():this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?this.share.expireDate=this.config.defaultRemoteExpirationDateString.toDateString():this.config.isDefaultInternalExpireDateEnabled&&(this.share.expireDate=this.config.defaultInternalExpirationDate.toDateString()),void(this.isValidShareAttribute(this.share.expireDate)&&(this.advancedSectionAccordionExpanded=!0));!this.isValidShareAttribute(this.share.expireDate)&&this.isExpiryDateEnforced&&(this.hasExpirationDate=!0),(this.isValidShareAttribute(this.share.password)||this.isValidShareAttribute(this.share.expireDate)||this.isValidShareAttribute(this.share.label))&&(this.advancedSectionAccordionExpanded=!0),this.share.note&&(this.writeNoteToRecipientIsChecked=!0)},handleShareType(){"shareType"in this.share?this.share.type=this.share.shareType:this.share.share_type&&(this.share.type=this.share.share_type)},handleDefaultPermissions(){if(this.isNewShare){const t=this.config.defaultPermissions;t===Lt.READ_ONLY||t===Lt.ALL?this.sharingPermission=t.toString():(this.sharingPermission="custom",this.share.permissions=t,this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)}this.canRemoveReadPermission||(this.hasRead=!0)},handleCustomPermissions(){this.isNewShare||!this.hasCustomPermissions&&!this.share.setCustomPermissions?this.share.permissions&&(this.sharingPermission=this.share.permissions.toString()):(this.sharingPermission="custom",this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)},initializePermissions(){this.handleShareType(),this.handleDefaultPermissions(),this.handleCustomPermissions()},async saveShare(){const t=["permissions","attributes","note","expireDate"],e=["label","password","hideDownload"];this.config.allowCustomTokens&&e.push("token"),this.isPublicShare&&t.push(...e);const i=parseInt(this.sharingPermission);if(this.setCustomPermissions?this.updateAtomicPermissions():this.share.permissions=i,this.isFolder||this.share.permissions!==Lt.ALL||(this.share.permissions=Lt.ALL_FILE),this.writeNoteToRecipientIsChecked||(this.share.note=""),this.isPasswordProtected?this.hasUnsavedPassword&&this.isValidShareAttribute(this.share.newPassword)?(this.share.password=this.share.newPassword,this.$delete(this.share,"newPassword")):this.isPasswordEnforced&&this.isNewShare&&!this.isValidShareAttribute(this.share.password)&&(this.passwordError=!0):this.share.password="",this.hasExpirationDate||(this.share.expireDate=""),this.isNewShare){const e={permissions:this.share.permissions,shareType:this.share.type,shareWith:this.share.shareWith,attributes:this.share.attributes,note:this.share.note,fileInfo:this.fileInfo};let i;e.expireDate=this.hasExpirationDate?this.share.expireDate:"",this.isPasswordProtected&&(e.password=this.share.password);try{this.creating=!0,i=await this.addShare(e)}catch(t){return void(this.creating=!1)}this.share._share.id=i.id,await this.queueUpdate(...t);for(const e of t)if(e in i&&e in this.share)try{i[e]=this.share[e]}catch{i._share[e]=this.share[e]}this.share=i,this.creating=!1,this.$emit("add:share",this.share)}else this.$emit("update:share",this.share),(0,Dt.Ic)("update:share",this.share),this.queueUpdate(...t);await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$refs.externalLinkActions?.length>0&&await Promise.allSettled(this.$refs.externalLinkActions.map((t=>"function"!=typeof t.$children.at(0)?.onSave?Promise.resolve():t.$children.at(0)?.onSave?.()))),this.$emit("close-sharing-details")},async addShare(t){gt.debug("Adding a new share from the input for",{share:t});const e=this.path;try{return await this.createShare({path:e,shareType:t.shareType,shareWith:t.shareWith,permissions:t.permissions,expireDate:t.expireDate,attributes:JSON.stringify(t.attributes),...t.note?{note:t.note}:{},...t.password?{password:t.password}:{}})}catch(t){gt.error("Error while adding new share",{error:t})}},async removeShare(){await this.onDelete(),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$emit("close-sharing-details")},onPasswordChange(t){if(""===t)return this.$delete(this.share,"newPassword"),void(this.passwordError=this.isNewShare&&this.isPasswordEnforced);this.passwordError=!this.isValidShareAttribute(t),this.$set(this.share,"newPassword",t)},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},isValidShareAttribute:t=>![null,void 0].includes(t)&&t.trim().length>0,getShareTypeIcon(t){switch(t){case ot.I.Link:return pi.A;case ot.I.Guest:return vi;case ot.I.RemoteGroup:case ot.I.Group:return fi.A;case ot.I.Email:return di;case ot.I.Team:return hi;case ot.I.Room:case ot.I.Deck:case ot.I.ScienceMesh:return Ai;default:return null}}}};var Ii=n(59620),ki={};ki.styleTagTransform=y(),ki.setAttributes=g(),ki.insert=p().bind(null,"head"),ki.domAPI=u(),ki.insertStyleElement=m(),c()(Ii.A,ki),Ii.A&&Ii.A.locals&&Ii.A.locals;const Ti=(0,_t.A)(Si,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTabDetailsView"},[e("div",{staticClass:"sharingTabDetailsView__header"},[e("span",[t.isUserShare?e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.shareType!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}):t._e(),t._v(" "),e(t.getShareTypeIcon(t.share.type),{tag:"component",attrs:{size:32}})],1),t._v(" "),e("span",[e("h1",[t._v(t._s(t.title))])])]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__wrapper"},[e("div",{ref:"quickPermissions",staticClass:"sharingTabDetailsView__quick-permissions"},[e("div",[e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"read-only",checked:t.sharingPermission,value:t.bundledPermissions.READ_ONLY.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ViewIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","View only"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"upload-edit",checked:t.sharingPermission,value:t.allPermissions,name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("EditIcon",{attrs:{size:20}})]},proxy:!0}])},[t.allowsFileDrop?[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow upload and editing"))+"\n\t\t\t\t\t")]:[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow editing"))+"\n\t\t\t\t\t")]],2),t._v(" "),t.allowsFileDrop?e("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-sharing-share-permissions-bundle":"file-drop","button-variant":!0,checked:t.sharingPermission,value:t.bundledPermissions.FILE_DROP.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("UploadIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1083194048)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","File request"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.t("files_sharing","Upload only")))])]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"custom",checked:t.sharingPermission,value:"custom",name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.expandCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.customPermissionsList))])])],1)]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__advanced-control"},[e("NcButton",{attrs:{id:"advancedSectionAccordionAdvancedControl",type:"tertiary",alignment:"end-reverse","aria-controls":"advancedSectionAccordionAdvanced","aria-expanded":t.advancedControlExpandedValue},on:{click:function(e){t.advancedSectionAccordionExpanded=!t.advancedSectionAccordionExpanded}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.advancedSectionAccordionExpanded?e("MenuUpIcon"):e("MenuDownIcon")]},proxy:!0}])},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Advanced settings"))+"\n\t\t\t\t")])],1),t._v(" "),t.advancedSectionAccordionExpanded?e("div",{staticClass:"sharingTabDetailsView__advanced",attrs:{id:"advancedSectionAccordionAdvanced","aria-labelledby":"advancedSectionAccordionAdvancedControl",role:"region"}},[e("section",[t.isPublicShare?e("NcInputField",{staticClass:"sharingTabDetailsView__label",attrs:{autocomplete:"off",label:t.t("files_sharing","Share label"),value:t.share.label},on:{"update:value":function(e){return t.$set(t.share,"label",e)}}}):t._e(),t._v(" "),t.config.allowCustomTokens&&t.isPublicShare&&!t.isNewShare?e("NcInputField",{attrs:{autocomplete:"off",label:t.t("files_sharing","Share link token"),"helper-text":t.t("files_sharing","Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information."),"show-trailing-button":"","trailing-button-label":t.loadingToken?t.t("files_sharing","Generating…"):t.t("files_sharing","Generate new token"),value:t.share.token},on:{"update:value":function(e){return t.$set(t.share,"token",e)},"trailing-button-click":t.generateNewToken},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[t.loadingToken?e("NcLoadingIcon"):e("Refresh",{attrs:{size:20}})]},proxy:!0}],null,!1,4228062821)}):t._e(),t._v(" "),t.isPublicShare?[e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtected,disabled:t.isPasswordEnforced},on:{"update:checked":function(e){t.isPasswordProtected=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Set password"))+"\n\t\t\t\t\t")]),t._v(" "),t.isPasswordProtected?e("NcPasswordField",{attrs:{autocomplete:"new-password",value:t.hasUnsavedPassword?t.share.newPassword:"",error:t.passwordError,"helper-text":t.errorPasswordLabel||t.passwordHint,required:t.isPasswordEnforced&&t.isNewShare,label:t.t("files_sharing","Password")},on:{"update:value":t.onPasswordChange}}):t._e(),t._v(" "),t.isEmailShareType&&t.passwordExpirationTime?e("span",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expires {passwordExpirationTime}",{passwordExpirationTime:t.passwordExpirationTime}))+"\n\t\t\t\t\t")]):t.isEmailShareType&&null!==t.passwordExpirationTime?e("span",{attrs:{icon:"icon-error"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expired"))+"\n\t\t\t\t\t")]):t._e()]:t._e(),t._v(" "),t.canTogglePasswordProtectedByTalkAvailable?e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtectedByTalk},on:{"update:checked":[function(e){t.isPasswordProtectedByTalk=e},t.onPasswordProtectedByTalkChange]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Video verification"))+"\n\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.hasExpirationDate,disabled:t.isExpiryDateEnforced},on:{"update:checked":function(e){t.hasExpirationDate=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.isExpiryDateEnforced?t.t("files_sharing","Expiration date (enforced)"):t.t("files_sharing","Set expiration date"))+"\n\t\t\t\t")]),t._v(" "),t.hasExpirationDate?e("NcDateTimePickerNative",{attrs:{id:"share-date-picker",value:new Date(t.share.expireDate??t.dateTomorrow),min:t.dateTomorrow,max:t.maxExpirationDateEnforced,"hide-label":"",label:t.t("files_sharing","Expiration date"),placeholder:t.t("files_sharing","Expiration date"),type:"date"},on:{input:t.onExpirationChange}}):t._e(),t._v(" "),t.isPublicShare?e("NcCheckboxRadioSwitch",{attrs:{disabled:t.canChangeHideDownload,checked:t.share.hideDownload},on:{"update:checked":[function(e){return t.$set(t.share,"hideDownload",e)},function(e){return t.queueUpdate("hideDownload")}]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Hide download"))+"\n\t\t\t\t")]):e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDownload,checked:t.canDownload,"data-cy-files-sharing-share-permissions-checkbox":"download"},on:{"update:checked":function(e){t.canDownload=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Allow download and sync"))+"\n\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.writeNoteToRecipientIsChecked},on:{"update:checked":function(e){t.writeNoteToRecipientIsChecked=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Note to recipient"))+"\n\t\t\t\t")]),t._v(" "),t.writeNoteToRecipientIsChecked?[e("NcTextArea",{attrs:{label:t.t("files_sharing","Note to recipient"),placeholder:t.t("files_sharing","Enter a note for the share recipient"),value:t.share.note},on:{"update:value":function(e){return t.$set(t.share,"note",e)}}})]:t._e(),t._v(" "),t.isPublicShare&&t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{checked:t.showInGridView},on:{"update:checked":function(e){t.showInGridView=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Show files in grid view"))+"\n\t\t\t\t")]):t._e(),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,ref:"externalLinkActions",refInFor:!0,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.setCustomPermissions},on:{"update:checked":function(e){t.setCustomPermissions=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t")]),t._v(" "),t.setCustomPermissions?e("section",{staticClass:"custom-permissions-group"},[e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canRemoveReadPermission,checked:t.hasRead,"data-cy-files-sharing-share-permissions-checkbox":"read"},on:{"update:checked":function(e){t.hasRead=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Read"))+"\n\t\t\t\t\t")]),t._v(" "),t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetCreate,checked:t.canCreate,"data-cy-files-sharing-share-permissions-checkbox":"create"},on:{"update:checked":function(e){t.canCreate=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Create"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetEdit,checked:t.canEdit,"data-cy-files-sharing-share-permissions-checkbox":"update"},on:{"update:checked":function(e){t.canEdit=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Edit"))+"\n\t\t\t\t\t")]),t._v(" "),t.resharingIsPossible?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetReshare,checked:t.canReshare,"data-cy-files-sharing-share-permissions-checkbox":"share"},on:{"update:checked":function(e){t.canReshare=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Share"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDelete,checked:t.canDelete,"data-cy-files-sharing-share-permissions-checkbox":"delete"},on:{"update:checked":function(e){t.canDelete=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete"))+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__delete"},[t.isNewShare?t._e():e("NcButton",{attrs:{"aria-label":t.t("files_sharing","Delete share"),disabled:!1,readonly:!1,type:"tertiary"},on:{click:function(e){return e.preventDefault(),t.removeShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:16}})]},proxy:!0}],null,!1,2746485232)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete share"))+"\n\t\t\t\t\t")])],1)],2)]):t._e()]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__footer"},[e("div",{staticClass:"button-group"},[e("NcButton",{attrs:{"data-cy-files-sharing-share-editor-action":"cancel"},on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary","data-cy-files-sharing-share-editor-action":"save",disabled:t.creating},on:{click:t.saveShare},scopedSlots:t._u([t.creating?{key:"icon",fn:function(){return[e("NcLoadingIcon")]},proxy:!0}:null],null,!0)},[t._v("\n\t\t\t\t"+t._s(t.shareButtonText)+"\n\t\t\t\t")])],1)])])}),[],!1,null,"4d0ee506",null).exports,Ni={name:"SharingTab",components:{CollectionList:at,InfoIcon:lt.A,NcAvatar:_.A,NcButton:ut.A,NcPopover:ct.N,SharingEntryInternal:kt,SharingEntrySimple:Et,SharingInherited:ne,SharingInput:Ft,SharingLinkList:Qe,SharingList:ii,SharingDetailsTab:Ti},mixins:[Ot],data:()=>({config:new pt,deleteEvent:null,error:"",expirationInterval:null,loading:!0,fileInfo:null,reshare:null,sharedWithMe:{},shares:[],linkShares:[],externalShares:[],sections:OCA.Sharing.ShareTabSections.getSections(),projectsEnabled:(0,a.C)("core","projects_enabled",!1),showSharingDetailsView:!1,shareDetailsData:{},returnFocusElement:null,internalSharesHelpText:t("files_sharing","Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access."),externalSharesHelpText:t("files_sharing","Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID."),additionalSharesHelpText:t("files_sharing","Shares that are not part of the internal or external shares. This can be shares from apps or other sources.")}),computed:{isSharedWithMe(){return Object.keys(this.sharedWithMe).length>0},canReshare(){return!!(this.fileInfo.permissions&OC.PERMISSION_SHARE)||!!(this.reshare&&this.reshare.hasSharePermission&&this.config.isResharingAllowed)},internalShareInputPlaceholder(){return this.config.showFederatedSharesAsInternal?t("files_sharing","Share with accounts, teams, federated cloud id"):t("files_sharing","Share with accounts and teams")},externalShareInputPlaceholder(){return this.config.showFederatedSharesAsInternal?t("files_sharing","Email"):t("files_sharing","Email, federated cloud id")}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,o.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=Z.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=Z.Ay.get(t,{params:{format:e,path:i,shared_with_me:!0}}),[s,a]=await Promise.all([n,r]);this.loading=!1,this.processSharedWithMe(a),this.processShares(s)}catch(e){this.error=e?.response?.data?.ocs?.meta?.message?e.response.data.ocs.meta.message:t("files_sharing","Unable to load the shares list"),this.loading=!1,console.error("Error loading the shares list",e)}},resetState(){clearInterval(this.expirationInterval),this.loading=!0,this.error="",this.sharedWithMe={},this.shares=[],this.linkShares=[],this.showSharingDetailsView=!1,this.shareDetailsData={}},updateExpirationSubtitle(e){const i=(0,ht.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ht.A)(1e3*i).fromNow()})),(0,ht.A)().unix()>i&&(clearInterval(this.expirationInterval),this.$set(this.sharedWithMe,"subtitle",t("files_sharing","this share just expired.")))},processShares(t){let{data:e}=t;if(e.ocs&&e.ocs.data&&e.ocs.data.length>0){const t=(0,s.My)(e.ocs.data.map((t=>new At(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);for(const e of t)[ot.I.Link,ot.I.Email].includes(e.type)?this.linkShares.push(e):[ot.I.Remote,ot.I.RemoteGroup].includes(e.type)?this.config.showFederatedSharesAsInternal?this.shares.push(e):this.externalShares.push(e):this.shares.push(e);gt.debug(`Processed ${this.linkShares.length} link share(s)`),gt.debug(`Processed ${this.shares.length} share(s)`),gt.debug(`Processed ${this.externalShares.length} external share(s)`)}},processSharedWithMe(e){let{data:i}=e;if(i.ocs&&i.ocs.data&&i.ocs.data[0]){const e=new At(i),n=function(e){return e.type===ot.I.Group?t("files_sharing","Shared with you and the group {group} by {owner}",{group:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Room?e.shareWithDisplayName?t("files_sharing","Shared with you and the conversation {conversation} by {owner}",{conversation:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you in a conversation by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1})}(e),r=e.ownerDisplayName,s=e.owner;this.sharedWithMe={displayName:r,title:n,user:s},this.reshare=e,e.expireDate&&(0,ht.A)(e.expireDate).unix()>(0,ht.A)().unix()&&(this.updateExpirationSubtitle(e),this.expirationInterval=setInterval(this.updateExpirationSubtitle,1e4,e))}else this.fileInfo&&void 0!==this.fileInfo.shareOwnerId&&this.fileInfo.shareOwnerId!==(0,r.HW)().uid&&(this.sharedWithMe={displayName:this.fileInfo.shareOwner,title:t("files_sharing","Shared with you by {owner}",{owner:this.fileInfo.shareOwner},void 0,{escape:!1}),user:this.fileInfo.shareOwnerId})},addShare(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{};t.type===ot.I.Email?this.linkShares.unshift(t):[ot.I.Remote,ot.I.RemoteGroup].includes(t.type)?this.config.showFederatedSharesAsInternal?this.shares.unshift(t):this.externalShares.unshift(t):this.shares.unshift(t),this.awaitForShare(t,e)},removeShare(t){const e=t.type===ot.I.Email||t.type===ot.I.Link?this.linkShares:this.shares,i=e.findIndex((e=>e.id===t.id));-1!==i&&e.splice(i,1)},awaitForShare(t,e){this.$nextTick((()=>{let i=this.$refs.shareList;t.type===ot.I.Email&&(i=this.$refs.linkShareList);const n=i.$children.find((e=>e.share===t));n&&e(n)}))},toggleShareDetailsView(t){if(!this.showSharingDetailsView)if(Array.from(document.activeElement.classList).some((t=>t.startsWith("action-")))){const t=document.activeElement.closest('[role="menu"]')?.id;this.returnFocusElement=document.querySelector(`[aria-controls="${t}"]`)}else this.returnFocusElement=document.activeElement;t&&(this.shareDetailsData=t),this.showSharingDetailsView=!this.showSharingDetailsView,this.showSharingDetailsView||this.$nextTick((()=>{this.returnFocusElement?.focus(),this.returnFocusElement=null}))}}},Di=Ni;var Pi=n(86194),Ri={};Ri.styleTagTransform=y(),Ri.setAttributes=g(),Ri.insert=p().bind(null,"head"),Ri.domAPI=u(),Ri.insertStyleElement=m(),c()(Pi.A,Ri),Pi.A&&Pi.A.locals&&Pi.A.locals;const Bi=(0,_t.A)(Di,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTab",class:{"icon-loading":t.loading}},[t.error?e("div",{staticClass:"emptycontent",class:{emptyContentWithSections:t.sections.length>0}},[e("div",{staticClass:"icon icon-error"}),t._v(" "),e("h2",[t._v(t._s(t.error))])]):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView,expression:"!showSharingDetailsView"}],staticClass:"sharingTab__content"},[t.isSharedWithMe?e("ul",[e("SharingEntrySimple",t._b({staticClass:"sharing-entry__reshare",scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.sharedWithMe.user,"display-name":t.sharedWithMe.displayName}})]},proxy:!0}],null,!1,3197855346)},"SharingEntrySimple",t.sharedWithMe,!1))],1):t._e(),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Internal shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Internal shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.internalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,reshare:t.reshare,shares:t.shares,placeholder:t.internalShareInputPlaceholder},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{ref:"shareList",attrs:{shares:t.shares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.canReshare&&!t.loading?e("SharingInherited",{attrs:{"file-info":t.fileInfo}}):t._e(),t._v(" "),e("SharingEntryInternal",{attrs:{"file-info":t.fileInfo}})],1),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","External shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","External shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.externalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,"is-external":!0,placeholder:t.externalShareInputPlaceholder,reshare:t.reshare,shares:t.shares},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{attrs:{shares:t.externalShares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}})],1),t._v(" "),t.sections.length>0&&!t.showSharingDetailsView?e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Additional shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Additional shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,1027936137)},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.additionalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t._l(t.sections,(function(i,n){return e("div",{key:n,ref:"section-"+n,refInFor:!0,staticClass:"sharingTab__additionalContent"},[e(i(t.$refs["section-"+n],t.fileInfo),{tag:"component",attrs:{"file-info":t.fileInfo}})],1)})),t._v(" "),t.projectsEnabled?e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView&&t.fileInfo,expression:"!showSharingDetailsView && fileInfo"}],staticClass:"sharingTab__additionalContent"},[e("CollectionList",{attrs:{id:`${t.fileInfo.id}`,type:"file",name:t.fileInfo.name}})],1):t._e()],2):t._e()]),t._v(" "),t.showSharingDetailsView?e("SharingDetailsTab",{attrs:{"file-info":t.shareDetailsData.fileInfo,share:t.shareDetailsData.share},on:{"close-sharing-details":t.toggleShareDetailsView,"add:share":t.addShare,"remove:share":t.removeShare}}):t._e()],1)}),[],!1,null,"6d3bde10",null).exports},70162:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-2dbd45b5]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-2dbd45b5]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-2dbd45b5]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-2dbd45b5],.sharing-entry__summary__desc small[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=a},79722:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},86194:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".emptyContentWithSections[data-v-6d3bde10]{margin:1rem auto}.sharingTab[data-v-6d3bde10]{position:relative;height:100%}.sharingTab__content[data-v-6d3bde10]{padding:0 6px}.sharingTab__content section[data-v-6d3bde10]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-6d3bde10]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-6d3bde10]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-6d3bde10]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-6d3bde10]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-6d3bde10]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-6d3bde10]{margin:44px 0}.hint-body[data-v-6d3bde10]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,aAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=a},86886:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},88522:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-select[data-v-2aa230f1]{display:block}.share-select[data-v-2aa230f1] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=a},96819:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-4d06a90a]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4d06a90a]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4d06a90a]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4d06a90a]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4d06a90a]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4d06a90a]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4d06a90a]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4d06a90a] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4d06a90a]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4d06a90a]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4d06a90a],.sharing-entry .action-item~.sharing-entry__loading[data-v-4d06a90a]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-4d06a90a]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-4d06a90a]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4d06a90a]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=a},97380:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}","",{version:3,sources:["webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],names:[],mappings:"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ",sourcesContent:[".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}"],sourceRoot:""}]);const o=a}}]); -//# sourceMappingURL=1092-1092.js.map?v=e575e490e067770d79e4
\ No newline at end of file diff --git a/dist/1092-1092.js.map b/dist/1092-1092.js.map deleted file mode 100644 index 1c60ccb9bcb..00000000000 --- a/dist/1092-1092.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"1092-1092.js?v=e575e490e067770d79e4","mappings":"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","sources":["webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss","webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0ae8","webpack://nextcloud/./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css?bb25","webpack:///nextcloud/node_modules/lodash-es/isObject.js","webpack:///nextcloud/node_modules/lodash-es/_freeGlobal.js","webpack:///nextcloud/node_modules/lodash-es/_root.js","webpack:///nextcloud/node_modules/lodash-es/now.js","webpack:///nextcloud/node_modules/lodash-es/_trimmedEndIndex.js","webpack:///nextcloud/node_modules/lodash-es/_baseTrim.js","webpack:///nextcloud/node_modules/lodash-es/_Symbol.js","webpack:///nextcloud/node_modules/lodash-es/_getRawTag.js","webpack:///nextcloud/node_modules/lodash-es/_objectToString.js","webpack:///nextcloud/node_modules/lodash-es/_baseGetTag.js","webpack:///nextcloud/node_modules/lodash-es/toNumber.js","webpack:///nextcloud/node_modules/lodash-es/isSymbol.js","webpack:///nextcloud/node_modules/lodash-es/isObjectLike.js","webpack:///nextcloud/node_modules/lodash-es/debounce.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.ts","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/apps/files_sharing/src/models/Share.ts","webpack:///nextcloud/apps/files_sharing/src/services/SharingService.ts","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?6c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?f180","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?cb12","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?8c53","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?4c20","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?65df","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?0b73","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?3d7c","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?45a6","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?a297","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?0e5a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?77d5","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?0657","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?1677","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?de0b","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?7202","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=18d04e6a","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlank.vue?3d12","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=template&id=41fe7db9","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?b80a","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=aba87788","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?46e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=03239926","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?93ae","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=6d856da2","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?7500","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=5603f41f","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8651","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=1eed3dd9","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?9ce8","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=e26de6f6","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?c468","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=caa55e94","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?eb90","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4441","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?0b36","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?4496","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Clock.vue?f027","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue?vue&type=template&id=539578bc","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?abc0","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?bc23","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?9bf3","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?82b4","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?dfcb","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?af90","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?64e9","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?a70b","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?e340","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?06a5","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?10a7","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f8d7","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?9f9c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7f2e","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?68bc","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=c013567c","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?3953","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=7dd7f6aa","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?a1b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=0e958886","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?a068","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=5b2fe1de","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?157b","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=4ae2345c","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/services/TokenService.ts","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7758","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?10fc","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?c72a","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=6d3bde10&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],"sourcesContent":["// 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, `.sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingInput.vue\"],\"names\":[],\"mappings\":\"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA\",\"sourcesContent\":[\"\\n.sharing-search {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 4px;\\n\\n\\tlabel[for=\\\"sharing-search-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__input {\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 10px 0;\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\t// properly style the lookup entry\\n\\tspan[lookup] {\\n\\t\\t.avatardiv {\\n\\t\\t\\tbackground-image: var(--icon-search-white);\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-color: var(--color-text-maxcontrast) !important;\\n\\t\\t\\t.avatardiv__initials-wrapper {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/*!\n * vue-qrcode v1.0.2\n * https://fengyuanchen.github.io/vue-qrcode\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-01-18T06:04:33.222Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.VueQrcode = factory());\n}(this, (function () { 'use strict';\n\n\tfunction commonjsRequire () {\n\t\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar qrcode = createCommonjsModule(function (module, exports) {\n\t(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n\t// can-promise has a crash in some versions of react native that dont have\n\t// standard global objects\n\t// https://github.com/soldair/node-qrcode/issues/157\n\n\tmodule.exports = function () {\n\t return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n\t};\n\n\t},{}],2:[function(require,module,exports){\n\t/**\n\t * Alignment pattern are fixed reference pattern in defined positions\n\t * in a matrix symbology, which enables the decode software to re-synchronise\n\t * the coordinate mapping of the image modules in the event of moderate amounts\n\t * of distortion of the image.\n\t *\n\t * Alignment patterns are present only in QR Code symbols of version 2 or larger\n\t * and their number depends on the symbol version.\n\t */\n\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\n\t/**\n\t * Calculate the row/column coordinates of the center module of each alignment pattern\n\t * for the specified QR Code version.\n\t *\n\t * The alignment patterns are positioned symmetrically on either side of the diagonal\n\t * running from the top left corner of the symbol to the bottom right corner.\n\t *\n\t * Since positions are simmetrical only half of the coordinates are returned.\n\t * Each item of the array will represent in turn the x and y coordinate.\n\t * @see {@link getPositions}\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinate\n\t */\n\texports.getRowColCoords = function getRowColCoords (version) {\n\t if (version === 1) return []\n\n\t var posCount = Math.floor(version / 7) + 2;\n\t var size = getSymbolSize(version);\n\t var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;\n\t var positions = [size - 7]; // Last coord is always (size - 7)\n\n\t for (var i = 1; i < posCount - 1; i++) {\n\t positions[i] = positions[i - 1] - intervals;\n\t }\n\n\t positions.push(6); // First coord is always 6\n\n\t return positions.reverse()\n\t};\n\n\t/**\n\t * Returns an array containing the positions of each alignment pattern.\n\t * Each array's element represent the center point of the pattern as (x, y) coordinates\n\t *\n\t * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n\t * and filtering out the items that overlaps with finder pattern\n\t *\n\t * @example\n\t * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n\t * The alignment patterns, therefore, are to be centered on (row, column)\n\t * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n\t * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n\t * and are not therefore used for alignment patterns.\n\t *\n\t * var pos = getPositions(7)\n\t * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var coords = [];\n\t var pos = exports.getRowColCoords(version);\n\t var posLength = pos.length;\n\n\t for (var i = 0; i < posLength; i++) {\n\t for (var j = 0; j < posLength; j++) {\n\t // Skip if position is occupied by finder patterns\n\t if ((i === 0 && j === 0) || // top-left\n\t (i === 0 && j === posLength - 1) || // bottom-left\n\t (i === posLength - 1 && j === 0)) { // top-right\n\t continue\n\t }\n\n\t coords.push([pos[i], pos[j]]);\n\t }\n\t }\n\n\t return coords\n\t};\n\n\t},{\"./utils\":21}],3:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\t/**\n\t * Array of characters available in alphanumeric mode\n\t *\n\t * As per QR Code specification, to each character\n\t * is assigned a value from 0 to 44 which in this case coincides\n\t * with the array index\n\t *\n\t * @type {Array}\n\t */\n\tvar ALPHA_NUM_CHARS = [\n\t '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n\t 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n\t ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n\t];\n\n\tfunction AlphanumericData (data) {\n\t this.mode = Mode.ALPHANUMERIC;\n\t this.data = data;\n\t}\n\n\tAlphanumericData.getBitsLength = function getBitsLength (length) {\n\t return 11 * Math.floor(length / 2) + 6 * (length % 2)\n\t};\n\n\tAlphanumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n\t return AlphanumericData.getBitsLength(this.data.length)\n\t};\n\n\tAlphanumericData.prototype.write = function write (bitBuffer) {\n\t var i;\n\n\t // Input data characters are divided into groups of two characters\n\t // and encoded as 11-bit binary codes.\n\t for (i = 0; i + 2 <= this.data.length; i += 2) {\n\t // The character value of the first character is multiplied by 45\n\t var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45;\n\n\t // The character value of the second digit is added to the product\n\t value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]);\n\n\t // The sum is then stored as 11-bit binary number\n\t bitBuffer.put(value, 11);\n\t }\n\n\t // If the number of input data characters is not a multiple of two,\n\t // the character value of the final character is encoded as a 6-bit binary number.\n\t if (this.data.length % 2) {\n\t bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);\n\t }\n\t};\n\n\tmodule.exports = AlphanumericData;\n\n\t},{\"./mode\":14}],4:[function(require,module,exports){\n\tfunction BitBuffer () {\n\t this.buffer = [];\n\t this.length = 0;\n\t}\n\n\tBitBuffer.prototype = {\n\n\t get: function (index) {\n\t var bufIndex = Math.floor(index / 8);\n\t return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n\t },\n\n\t put: function (num, length) {\n\t for (var i = 0; i < length; i++) {\n\t this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n\t }\n\t },\n\n\t getLengthInBits: function () {\n\t return this.length\n\t },\n\n\t putBit: function (bit) {\n\t var bufIndex = Math.floor(this.length / 8);\n\t if (this.buffer.length <= bufIndex) {\n\t this.buffer.push(0);\n\t }\n\n\t if (bit) {\n\t this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));\n\t }\n\n\t this.length++;\n\t }\n\t};\n\n\tmodule.exports = BitBuffer;\n\n\t},{}],5:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\t/**\n\t * Helper class to handle QR Code symbol modules\n\t *\n\t * @param {Number} size Symbol size\n\t */\n\tfunction BitMatrix (size) {\n\t if (!size || size < 1) {\n\t throw new Error('BitMatrix size must be defined and greater than 0')\n\t }\n\n\t this.size = size;\n\t this.data = BufferUtil.alloc(size * size);\n\t this.reservedBit = BufferUtil.alloc(size * size);\n\t}\n\n\t/**\n\t * Set bit value at specified location\n\t * If reserved flag is set, this bit will be ignored during masking process\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t * @param {Boolean} reserved\n\t */\n\tBitMatrix.prototype.set = function (row, col, value, reserved) {\n\t var index = row * this.size + col;\n\t this.data[index] = value;\n\t if (reserved) this.reservedBit[index] = true;\n\t};\n\n\t/**\n\t * Returns bit value at specified location\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.get = function (row, col) {\n\t return this.data[row * this.size + col]\n\t};\n\n\t/**\n\t * Applies xor operator at specified location\n\t * (used during masking process)\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t */\n\tBitMatrix.prototype.xor = function (row, col, value) {\n\t this.data[row * this.size + col] ^= value;\n\t};\n\n\t/**\n\t * Check if bit at specified location is reserved\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.isReserved = function (row, col) {\n\t return this.reservedBit[row * this.size + col]\n\t};\n\n\tmodule.exports = BitMatrix;\n\n\t},{\"../utils/buffer\":28}],6:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Mode = require('./mode');\n\n\tfunction ByteData (data) {\n\t this.mode = Mode.BYTE;\n\t this.data = BufferUtil.from(data);\n\t}\n\n\tByteData.getBitsLength = function getBitsLength (length) {\n\t return length * 8\n\t};\n\n\tByteData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tByteData.prototype.getBitsLength = function getBitsLength () {\n\t return ByteData.getBitsLength(this.data.length)\n\t};\n\n\tByteData.prototype.write = function (bitBuffer) {\n\t for (var i = 0, l = this.data.length; i < l; i++) {\n\t bitBuffer.put(this.data[i], 8);\n\t }\n\t};\n\n\tmodule.exports = ByteData;\n\n\t},{\"../utils/buffer\":28,\"./mode\":14}],7:[function(require,module,exports){\n\tvar ECLevel = require('./error-correction-level');\r\n\r\n\tvar EC_BLOCKS_TABLE = [\r\n\t// L M Q H\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 2, 2,\r\n\t 1, 2, 2, 4,\r\n\t 1, 2, 4, 4,\r\n\t 2, 4, 4, 4,\r\n\t 2, 4, 6, 5,\r\n\t 2, 4, 6, 6,\r\n\t 2, 5, 8, 8,\r\n\t 4, 5, 8, 8,\r\n\t 4, 5, 8, 11,\r\n\t 4, 8, 10, 11,\r\n\t 4, 9, 12, 16,\r\n\t 4, 9, 16, 16,\r\n\t 6, 10, 12, 18,\r\n\t 6, 10, 17, 16,\r\n\t 6, 11, 16, 19,\r\n\t 6, 13, 18, 21,\r\n\t 7, 14, 21, 25,\r\n\t 8, 16, 20, 25,\r\n\t 8, 17, 23, 25,\r\n\t 9, 17, 23, 34,\r\n\t 9, 18, 25, 30,\r\n\t 10, 20, 27, 32,\r\n\t 12, 21, 29, 35,\r\n\t 12, 23, 34, 37,\r\n\t 12, 25, 34, 40,\r\n\t 13, 26, 35, 42,\r\n\t 14, 28, 38, 45,\r\n\t 15, 29, 40, 48,\r\n\t 16, 31, 43, 51,\r\n\t 17, 33, 45, 54,\r\n\t 18, 35, 48, 57,\r\n\t 19, 37, 51, 60,\r\n\t 19, 38, 53, 63,\r\n\t 20, 40, 56, 66,\r\n\t 21, 43, 59, 70,\r\n\t 22, 45, 62, 74,\r\n\t 24, 47, 65, 77,\r\n\t 25, 49, 68, 81\r\n\t];\r\n\r\n\tvar EC_CODEWORDS_TABLE = [\r\n\t// L M Q H\r\n\t 7, 10, 13, 17,\r\n\t 10, 16, 22, 28,\r\n\t 15, 26, 36, 44,\r\n\t 20, 36, 52, 64,\r\n\t 26, 48, 72, 88,\r\n\t 36, 64, 96, 112,\r\n\t 40, 72, 108, 130,\r\n\t 48, 88, 132, 156,\r\n\t 60, 110, 160, 192,\r\n\t 72, 130, 192, 224,\r\n\t 80, 150, 224, 264,\r\n\t 96, 176, 260, 308,\r\n\t 104, 198, 288, 352,\r\n\t 120, 216, 320, 384,\r\n\t 132, 240, 360, 432,\r\n\t 144, 280, 408, 480,\r\n\t 168, 308, 448, 532,\r\n\t 180, 338, 504, 588,\r\n\t 196, 364, 546, 650,\r\n\t 224, 416, 600, 700,\r\n\t 224, 442, 644, 750,\r\n\t 252, 476, 690, 816,\r\n\t 270, 504, 750, 900,\r\n\t 300, 560, 810, 960,\r\n\t 312, 588, 870, 1050,\r\n\t 336, 644, 952, 1110,\r\n\t 360, 700, 1020, 1200,\r\n\t 390, 728, 1050, 1260,\r\n\t 420, 784, 1140, 1350,\r\n\t 450, 812, 1200, 1440,\r\n\t 480, 868, 1290, 1530,\r\n\t 510, 924, 1350, 1620,\r\n\t 540, 980, 1440, 1710,\r\n\t 570, 1036, 1530, 1800,\r\n\t 570, 1064, 1590, 1890,\r\n\t 600, 1120, 1680, 1980,\r\n\t 630, 1204, 1770, 2100,\r\n\t 660, 1260, 1860, 2220,\r\n\t 720, 1316, 1950, 2310,\r\n\t 750, 1372, 2040, 2430\r\n\t];\r\n\r\n\t/**\r\n\t * Returns the number of error correction block that the QR Code should contain\r\n\t * for the specified version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction blocks\r\n\t */\r\n\texports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the number of error correction codewords to use for the specified\r\n\t * version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction codewords\r\n\t */\r\n\texports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\n\t},{\"./error-correction-level\":8}],8:[function(require,module,exports){\n\texports.L = { bit: 1 };\n\texports.M = { bit: 0 };\n\texports.Q = { bit: 3 };\n\texports.H = { bit: 2 };\n\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'l':\n\t case 'low':\n\t return exports.L\n\n\t case 'm':\n\t case 'medium':\n\t return exports.M\n\n\t case 'q':\n\t case 'quartile':\n\t return exports.Q\n\n\t case 'h':\n\t case 'high':\n\t return exports.H\n\n\t default:\n\t throw new Error('Unknown EC Level: ' + string)\n\t }\n\t}\n\n\texports.isValid = function isValid (level) {\n\t return level && typeof level.bit !== 'undefined' &&\n\t level.bit >= 0 && level.bit < 4\n\t};\n\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{}],9:[function(require,module,exports){\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\tvar FINDER_PATTERN_SIZE = 7;\n\n\t/**\n\t * Returns an array containing the positions of each finder pattern.\n\t * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var size = getSymbolSize(version);\n\n\t return [\n\t // top-left\n\t [0, 0],\n\t // top-right\n\t [size - FINDER_PATTERN_SIZE, 0],\n\t // bottom-left\n\t [0, size - FINDER_PATTERN_SIZE]\n\t ]\n\t};\n\n\t},{\"./utils\":21}],10:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n\tvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\tvar G15_BCH = Utils.getBCHDigit(G15);\n\n\t/**\n\t * Returns format information with relative error correction bits\n\t *\n\t * The format information is a 15-bit sequence containing 5 data bits,\n\t * with 10 error correction bits calculated using the (15, 5) BCH code.\n\t *\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Number} mask Mask pattern\n\t * @return {Number} Encoded format information bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n\t var data = ((errorCorrectionLevel.bit << 3) | mask);\n\t var d = data << 10;\n\n\t while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n\t d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH));\n\t }\n\n\t // xor final data with mask pattern in order to ensure that\n\t // no combination of Error Correction Level and data mask pattern\n\t // will result in an all-zero data string\n\t return ((data << 10) | d) ^ G15_MASK\n\t};\n\n\t},{\"./utils\":21}],11:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\tvar EXP_TABLE = BufferUtil.alloc(512);\n\tvar LOG_TABLE = BufferUtil.alloc(256)\n\t/**\n\t * Precompute the log and anti-log tables for faster computation later\n\t *\n\t * For each possible value in the galois field 2^8, we will pre-compute\n\t * the logarithm and anti-logarithm (exponential) of this value\n\t *\n\t * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n\t */\n\t;(function initTables () {\n\t var x = 1;\n\t for (var i = 0; i < 255; i++) {\n\t EXP_TABLE[i] = x;\n\t LOG_TABLE[x] = i;\n\n\t x <<= 1; // multiply by 2\n\n\t // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n\t // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\t if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n\t x ^= 0x11D;\n\t }\n\t }\n\n\t // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n\t // stay inside the bounds (because we will mainly use this table for the multiplication of\n\t // two GF numbers, no more).\n\t // @see {@link mul}\n\t for (i = 255; i < 512; i++) {\n\t EXP_TABLE[i] = EXP_TABLE[i - 255];\n\t }\n\t}());\n\n\t/**\n\t * Returns log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.log = function log (n) {\n\t if (n < 1) throw new Error('log(' + n + ')')\n\t return LOG_TABLE[n]\n\t};\n\n\t/**\n\t * Returns anti-log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.exp = function exp (n) {\n\t return EXP_TABLE[n]\n\t};\n\n\t/**\n\t * Multiplies two number inside Galois Field\n\t *\n\t * @param {Number} x\n\t * @param {Number} y\n\t * @return {Number}\n\t */\n\texports.mul = function mul (x, y) {\n\t if (x === 0 || y === 0) return 0\n\n\t // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n\t // @see {@link initTables}\n\t return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n\t};\n\n\t},{\"../utils/buffer\":28}],12:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar Utils = require('./utils');\n\n\tfunction KanjiData (data) {\n\t this.mode = Mode.KANJI;\n\t this.data = data;\n\t}\n\n\tKanjiData.getBitsLength = function getBitsLength (length) {\n\t return length * 13\n\t};\n\n\tKanjiData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tKanjiData.prototype.getBitsLength = function getBitsLength () {\n\t return KanjiData.getBitsLength(this.data.length)\n\t};\n\n\tKanjiData.prototype.write = function (bitBuffer) {\n\t var i;\n\n\t // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n\t // These byte values are shifted from the JIS X 0208 values.\n\t // JIS X 0208 gives details of the shift coded representation.\n\t for (i = 0; i < this.data.length; i++) {\n\t var value = Utils.toSJIS(this.data[i]);\n\n\t // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\t if (value >= 0x8140 && value <= 0x9FFC) {\n\t // Subtract 0x8140 from Shift JIS value\n\t value -= 0x8140;\n\n\t // For characters with Shift JIS values from 0xE040 to 0xEBBF\n\t } else if (value >= 0xE040 && value <= 0xEBBF) {\n\t // Subtract 0xC140 from Shift JIS value\n\t value -= 0xC140;\n\t } else {\n\t throw new Error(\n\t 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n\t 'Make sure your charset is UTF-8')\n\t }\n\n\t // Multiply most significant byte of result by 0xC0\n\t // and add least significant byte to product\n\t value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);\n\n\t // Convert result to a 13-bit binary string\n\t bitBuffer.put(value, 13);\n\t }\n\t};\n\n\tmodule.exports = KanjiData;\n\n\t},{\"./mode\":14,\"./utils\":21}],13:[function(require,module,exports){\n\t/**\n\t * Data mask pattern reference\n\t * @type {Object}\n\t */\n\texports.Patterns = {\n\t PATTERN000: 0,\n\t PATTERN001: 1,\n\t PATTERN010: 2,\n\t PATTERN011: 3,\n\t PATTERN100: 4,\n\t PATTERN101: 5,\n\t PATTERN110: 6,\n\t PATTERN111: 7\n\t};\n\n\t/**\n\t * Weighted penalty scores for the undesirable features\n\t * @type {Object}\n\t */\n\tvar PenaltyScores = {\n\t N1: 3,\n\t N2: 3,\n\t N3: 40,\n\t N4: 10\n\t};\n\n\t/**\n\t * Check if mask pattern value is valid\n\t *\n\t * @param {Number} mask Mask pattern\n\t * @return {Boolean} true if valid, false otherwise\n\t */\n\texports.isValid = function isValid (mask) {\n\t return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n\t};\n\n\t/**\n\t * Returns mask pattern from a value.\n\t * If value is not valid, returns undefined\n\t *\n\t * @param {Number|String} value Mask pattern value\n\t * @return {Number} Valid mask pattern or undefined\n\t */\n\texports.from = function from (value) {\n\t return exports.isValid(value) ? parseInt(value, 10) : undefined\n\t};\n\n\t/**\n\t* Find adjacent modules in row/column with the same color\n\t* and assign a penalty value.\n\t*\n\t* Points: N1 + i\n\t* i is the amount by which the number of adjacent modules of the same color exceeds 5\n\t*/\n\texports.getPenaltyN1 = function getPenaltyN1 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var sameCountCol = 0;\n\t var sameCountRow = 0;\n\t var lastCol = null;\n\t var lastRow = null;\n\n\t for (var row = 0; row < size; row++) {\n\t sameCountCol = sameCountRow = 0;\n\t lastCol = lastRow = null;\n\n\t for (var col = 0; col < size; col++) {\n\t var module = data.get(row, col);\n\t if (module === lastCol) {\n\t sameCountCol++;\n\t } else {\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t lastCol = module;\n\t sameCountCol = 1;\n\t }\n\n\t module = data.get(col, row);\n\t if (module === lastRow) {\n\t sameCountRow++;\n\t } else {\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t lastRow = module;\n\t sameCountRow = 1;\n\t }\n\t }\n\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t }\n\n\t return points\n\t};\n\n\t/**\n\t * Find 2x2 blocks with the same color and assign a penalty value\n\t *\n\t * Points: N2 * (m - 1) * (n - 1)\n\t */\n\texports.getPenaltyN2 = function getPenaltyN2 (data) {\n\t var size = data.size;\n\t var points = 0;\n\n\t for (var row = 0; row < size - 1; row++) {\n\t for (var col = 0; col < size - 1; col++) {\n\t var last = data.get(row, col) +\n\t data.get(row, col + 1) +\n\t data.get(row + 1, col) +\n\t data.get(row + 1, col + 1);\n\n\t if (last === 4 || last === 0) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N2\n\t};\n\n\t/**\n\t * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n\t * preceded or followed by light area 4 modules wide\n\t *\n\t * Points: N3 * number of pattern found\n\t */\n\texports.getPenaltyN3 = function getPenaltyN3 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var bitsCol = 0;\n\t var bitsRow = 0;\n\n\t for (var row = 0; row < size; row++) {\n\t bitsCol = bitsRow = 0;\n\t for (var col = 0; col < size; col++) {\n\t bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);\n\t if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n\n\t bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);\n\t if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N3\n\t};\n\n\t/**\n\t * Calculate proportion of dark modules in entire symbol\n\t *\n\t * Points: N4 * k\n\t *\n\t * k is the rating of the deviation of the proportion of dark modules\n\t * in the symbol from 50% in steps of 5%\n\t */\n\texports.getPenaltyN4 = function getPenaltyN4 (data) {\n\t var darkCount = 0;\n\t var modulesCount = data.data.length;\n\n\t for (var i = 0; i < modulesCount; i++) darkCount += data.data[i];\n\n\t var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);\n\n\t return k * PenaltyScores.N4\n\t};\n\n\t/**\n\t * Return mask value at given position\n\t *\n\t * @param {Number} maskPattern Pattern reference value\n\t * @param {Number} i Row\n\t * @param {Number} j Column\n\t * @return {Boolean} Mask value\n\t */\n\tfunction getMaskAt (maskPattern, i, j) {\n\t switch (maskPattern) {\n\t case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n\t case exports.Patterns.PATTERN001: return i % 2 === 0\n\t case exports.Patterns.PATTERN010: return j % 3 === 0\n\t case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n\t case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n\t case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n\t case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n\t case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n\t default: throw new Error('bad maskPattern:' + maskPattern)\n\t }\n\t}\n\n\t/**\n\t * Apply a mask pattern to a BitMatrix\n\t *\n\t * @param {Number} pattern Pattern reference number\n\t * @param {BitMatrix} data BitMatrix data\n\t */\n\texports.applyMask = function applyMask (pattern, data) {\n\t var size = data.size;\n\n\t for (var col = 0; col < size; col++) {\n\t for (var row = 0; row < size; row++) {\n\t if (data.isReserved(row, col)) continue\n\t data.xor(row, col, getMaskAt(pattern, row, col));\n\t }\n\t }\n\t};\n\n\t/**\n\t * Returns the best mask pattern for data\n\t *\n\t * @param {BitMatrix} data\n\t * @return {Number} Mask pattern reference number\n\t */\n\texports.getBestMask = function getBestMask (data, setupFormatFunc) {\n\t var numPatterns = Object.keys(exports.Patterns).length;\n\t var bestPattern = 0;\n\t var lowerPenalty = Infinity;\n\n\t for (var p = 0; p < numPatterns; p++) {\n\t setupFormatFunc(p);\n\t exports.applyMask(p, data);\n\n\t // Calculate penalty\n\t var penalty =\n\t exports.getPenaltyN1(data) +\n\t exports.getPenaltyN2(data) +\n\t exports.getPenaltyN3(data) +\n\t exports.getPenaltyN4(data);\n\n\t // Undo previously applied mask\n\t exports.applyMask(p, data);\n\n\t if (penalty < lowerPenalty) {\n\t lowerPenalty = penalty;\n\t bestPattern = p;\n\t }\n\t }\n\n\t return bestPattern\n\t};\n\n\t},{}],14:[function(require,module,exports){\n\tvar VersionCheck = require('./version-check');\n\tvar Regex = require('./regex');\n\n\t/**\n\t * Numeric mode encodes data from the decimal digit set (0 - 9)\n\t * (byte values 30HEX to 39HEX).\n\t * Normally, 3 data characters are represented by 10 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.NUMERIC = {\n\t id: 'Numeric',\n\t bit: 1 << 0,\n\t ccBits: [10, 12, 14]\n\t};\n\n\t/**\n\t * Alphanumeric mode encodes data from a set of 45 characters,\n\t * i.e. 10 numeric digits (0 - 9),\n\t * 26 alphabetic characters (A - Z),\n\t * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n\t * Normally, two input characters are represented by 11 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.ALPHANUMERIC = {\n\t id: 'Alphanumeric',\n\t bit: 1 << 1,\n\t ccBits: [9, 11, 13]\n\t};\n\n\t/**\n\t * In byte mode, data is encoded at 8 bits per character.\n\t *\n\t * @type {Object}\n\t */\n\texports.BYTE = {\n\t id: 'Byte',\n\t bit: 1 << 2,\n\t ccBits: [8, 16, 16]\n\t};\n\n\t/**\n\t * The Kanji mode efficiently encodes Kanji characters in accordance with\n\t * the Shift JIS system based on JIS X 0208.\n\t * The Shift JIS values are shifted from the JIS X 0208 values.\n\t * JIS X 0208 gives details of the shift coded representation.\n\t * Each two-byte character value is compacted to a 13-bit binary codeword.\n\t *\n\t * @type {Object}\n\t */\n\texports.KANJI = {\n\t id: 'Kanji',\n\t bit: 1 << 3,\n\t ccBits: [8, 10, 12]\n\t};\n\n\t/**\n\t * Mixed mode will contain a sequences of data in a combination of any of\n\t * the modes described above\n\t *\n\t * @type {Object}\n\t */\n\texports.MIXED = {\n\t bit: -1\n\t};\n\n\t/**\n\t * Returns the number of bits needed to store the data length\n\t * according to QR Code specifications.\n\t *\n\t * @param {Mode} mode Data mode\n\t * @param {Number} version QR Code version\n\t * @return {Number} Number of bits\n\t */\n\texports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n\t if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid version: ' + version)\n\t }\n\n\t if (version >= 1 && version < 10) return mode.ccBits[0]\n\t else if (version < 27) return mode.ccBits[1]\n\t return mode.ccBits[2]\n\t};\n\n\t/**\n\t * Returns the most efficient mode to store the specified data\n\t *\n\t * @param {String} dataStr Input data string\n\t * @return {Mode} Best mode\n\t */\n\texports.getBestModeForData = function getBestModeForData (dataStr) {\n\t if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n\t else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n\t else if (Regex.testKanji(dataStr)) return exports.KANJI\n\t else return exports.BYTE\n\t};\n\n\t/**\n\t * Return mode name as string\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {String} Mode name\n\t */\n\texports.toString = function toString (mode) {\n\t if (mode && mode.id) return mode.id\n\t throw new Error('Invalid mode')\n\t};\n\n\t/**\n\t * Check if input param is a valid mode object\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {Boolean} True if valid mode, false otherwise\n\t */\n\texports.isValid = function isValid (mode) {\n\t return mode && mode.bit && mode.ccBits\n\t};\n\n\t/**\n\t * Get mode object from its name\n\t *\n\t * @param {String} string Mode name\n\t * @returns {Mode} Mode object\n\t */\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'numeric':\n\t return exports.NUMERIC\n\t case 'alphanumeric':\n\t return exports.ALPHANUMERIC\n\t case 'kanji':\n\t return exports.KANJI\n\t case 'byte':\n\t return exports.BYTE\n\t default:\n\t throw new Error('Unknown mode: ' + string)\n\t }\n\t}\n\n\t/**\n\t * Returns mode from a value.\n\t * If value is not a valid mode, returns defaultValue\n\t *\n\t * @param {Mode|String} value Encoding mode\n\t * @param {Mode} defaultValue Fallback value\n\t * @return {Mode} Encoding mode\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{\"./regex\":19,\"./version-check\":22}],15:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\tfunction NumericData (data) {\n\t this.mode = Mode.NUMERIC;\n\t this.data = data.toString();\n\t}\n\n\tNumericData.getBitsLength = function getBitsLength (length) {\n\t return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n\t};\n\n\tNumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tNumericData.prototype.getBitsLength = function getBitsLength () {\n\t return NumericData.getBitsLength(this.data.length)\n\t};\n\n\tNumericData.prototype.write = function write (bitBuffer) {\n\t var i, group, value;\n\n\t // The input data string is divided into groups of three digits,\n\t // and each group is converted to its 10-bit binary equivalent.\n\t for (i = 0; i + 3 <= this.data.length; i += 3) {\n\t group = this.data.substr(i, 3);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, 10);\n\t }\n\n\t // If the number of input digits is not an exact multiple of three,\n\t // the final one or two digits are converted to 4 or 7 bits respectively.\n\t var remainingNum = this.data.length - i;\n\t if (remainingNum > 0) {\n\t group = this.data.substr(i);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, remainingNum * 3 + 1);\n\t }\n\t};\n\n\tmodule.exports = NumericData;\n\n\t},{\"./mode\":14}],16:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar GF = require('./galois-field');\n\n\t/**\n\t * Multiplies two polynomials inside Galois Field\n\t *\n\t * @param {Buffer} p1 Polynomial\n\t * @param {Buffer} p2 Polynomial\n\t * @return {Buffer} Product of p1 and p2\n\t */\n\texports.mul = function mul (p1, p2) {\n\t var coeff = BufferUtil.alloc(p1.length + p2.length - 1);\n\n\t for (var i = 0; i < p1.length; i++) {\n\t for (var j = 0; j < p2.length; j++) {\n\t coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n\t }\n\t }\n\n\t return coeff\n\t};\n\n\t/**\n\t * Calculate the remainder of polynomials division\n\t *\n\t * @param {Buffer} divident Polynomial\n\t * @param {Buffer} divisor Polynomial\n\t * @return {Buffer} Remainder\n\t */\n\texports.mod = function mod (divident, divisor) {\n\t var result = BufferUtil.from(divident);\n\n\t while ((result.length - divisor.length) >= 0) {\n\t var coeff = result[0];\n\n\t for (var i = 0; i < divisor.length; i++) {\n\t result[i] ^= GF.mul(divisor[i], coeff);\n\t }\n\n\t // remove all zeros from buffer head\n\t var offset = 0;\n\t while (offset < result.length && result[offset] === 0) offset++;\n\t result = result.slice(offset);\n\t }\n\n\t return result\n\t};\n\n\t/**\n\t * Generate an irreducible generator polynomial of specified degree\n\t * (used by Reed-Solomon encoder)\n\t *\n\t * @param {Number} degree Degree of the generator polynomial\n\t * @return {Buffer} Buffer containing polynomial coefficients\n\t */\n\texports.generateECPolynomial = function generateECPolynomial (degree) {\n\t var poly = BufferUtil.from([1]);\n\t for (var i = 0; i < degree; i++) {\n\t poly = exports.mul(poly, [1, GF.exp(i)]);\n\t }\n\n\t return poly\n\t};\n\n\t},{\"../utils/buffer\":28,\"./galois-field\":11}],17:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Utils = require('./utils');\n\tvar ECLevel = require('./error-correction-level');\n\tvar BitBuffer = require('./bit-buffer');\n\tvar BitMatrix = require('./bit-matrix');\n\tvar AlignmentPattern = require('./alignment-pattern');\n\tvar FinderPattern = require('./finder-pattern');\n\tvar MaskPattern = require('./mask-pattern');\n\tvar ECCode = require('./error-correction-code');\n\tvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\tvar Version = require('./version');\n\tvar FormatInfo = require('./format-info');\n\tvar Mode = require('./mode');\n\tvar Segments = require('./segments');\n\tvar isArray = require('isarray');\n\n\t/**\n\t * QRCode for JavaScript\n\t *\n\t * modified by Ryan Day for nodejs support\n\t * Copyright (c) 2011 Ryan Day\n\t *\n\t * Licensed under the MIT license:\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of\n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\t*/\n\n\t/**\n\t * Add finder patterns bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupFinderPattern (matrix, version) {\n\t var size = matrix.size;\n\t var pos = FinderPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -1; r <= 7; r++) {\n\t if (row + r <= -1 || size <= row + r) continue\n\n\t for (var c = -1; c <= 7; c++) {\n\t if (col + c <= -1 || size <= col + c) continue\n\n\t if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n\t (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n\t (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add timing pattern bits to matrix\n\t *\n\t * Note: this function must be called before {@link setupAlignmentPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t */\n\tfunction setupTimingPattern (matrix) {\n\t var size = matrix.size;\n\n\t for (var r = 8; r < size - 8; r++) {\n\t var value = r % 2 === 0;\n\t matrix.set(r, 6, value, true);\n\t matrix.set(6, r, value, true);\n\t }\n\t}\n\n\t/**\n\t * Add alignment patterns bits to matrix\n\t *\n\t * Note: this function must be called after {@link setupTimingPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupAlignmentPattern (matrix, version) {\n\t var pos = AlignmentPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -2; r <= 2; r++) {\n\t for (var c = -2; c <= 2; c++) {\n\t if (r === -2 || r === 2 || c === -2 || c === 2 ||\n\t (r === 0 && c === 0)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add version info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupVersionInfo (matrix, version) {\n\t var size = matrix.size;\n\t var bits = Version.getEncodedBits(version);\n\t var row, col, mod;\n\n\t for (var i = 0; i < 18; i++) {\n\t row = Math.floor(i / 3);\n\t col = i % 3 + size - 8 - 3;\n\t mod = ((bits >> i) & 1) === 1;\n\n\t matrix.set(row, col, mod, true);\n\t matrix.set(col, row, mod, true);\n\t }\n\t}\n\n\t/**\n\t * Add format info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {Number} maskPattern Mask pattern reference value\n\t */\n\tfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n\t var size = matrix.size;\n\t var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n\t var i, mod;\n\n\t for (i = 0; i < 15; i++) {\n\t mod = ((bits >> i) & 1) === 1;\n\n\t // vertical\n\t if (i < 6) {\n\t matrix.set(i, 8, mod, true);\n\t } else if (i < 8) {\n\t matrix.set(i + 1, 8, mod, true);\n\t } else {\n\t matrix.set(size - 15 + i, 8, mod, true);\n\t }\n\n\t // horizontal\n\t if (i < 8) {\n\t matrix.set(8, size - i - 1, mod, true);\n\t } else if (i < 9) {\n\t matrix.set(8, 15 - i - 1 + 1, mod, true);\n\t } else {\n\t matrix.set(8, 15 - i - 1, mod, true);\n\t }\n\t }\n\n\t // fixed module\n\t matrix.set(size - 8, 8, 1, true);\n\t}\n\n\t/**\n\t * Add encoded data bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Buffer} data Data codewords\n\t */\n\tfunction setupData (matrix, data) {\n\t var size = matrix.size;\n\t var inc = -1;\n\t var row = size - 1;\n\t var bitIndex = 7;\n\t var byteIndex = 0;\n\n\t for (var col = size - 1; col > 0; col -= 2) {\n\t if (col === 6) col--;\n\n\t while (true) {\n\t for (var c = 0; c < 2; c++) {\n\t if (!matrix.isReserved(row, col - c)) {\n\t var dark = false;\n\n\t if (byteIndex < data.length) {\n\t dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);\n\t }\n\n\t matrix.set(row, col - c, dark);\n\t bitIndex--;\n\n\t if (bitIndex === -1) {\n\t byteIndex++;\n\t bitIndex = 7;\n\t }\n\t }\n\t }\n\n\t row += inc;\n\n\t if (row < 0 || size <= row) {\n\t row -= inc;\n\t inc = -inc;\n\t break\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Create encoded codewords from data input\n\t *\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {ByteData} data Data input\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createData (version, errorCorrectionLevel, segments) {\n\t // Prepare data buffer\n\t var buffer = new BitBuffer();\n\n\t segments.forEach(function (data) {\n\t // prefix data with mode indicator (4 bits)\n\t buffer.put(data.mode.bit, 4);\n\n\t // Prefix data with character count indicator.\n\t // The character count indicator is a string of bits that represents the\n\t // number of characters that are being encoded.\n\t // The character count indicator must be placed after the mode indicator\n\t // and must be a certain number of bits long, depending on the QR version\n\t // and data mode\n\t // @see {@link Mode.getCharCountIndicator}.\n\t buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version));\n\n\t // add binary data sequence to buffer\n\t data.write(buffer);\n\t });\n\n\t // Calculate required number of bits\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t // Add a terminator.\n\t // If the bit string is shorter than the total number of required bits,\n\t // a terminator of up to four 0s must be added to the right side of the string.\n\t // If the bit string is more than four bits shorter than the required number of bits,\n\t // add four 0s to the end.\n\t if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n\t buffer.put(0, 4);\n\t }\n\n\t // If the bit string is fewer than four bits shorter, add only the number of 0s that\n\t // are needed to reach the required number of bits.\n\n\t // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n\t // pad the string on the right with 0s to make the string's length a multiple of 8.\n\t while (buffer.getLengthInBits() % 8 !== 0) {\n\t buffer.putBit(0);\n\t }\n\n\t // Add pad bytes if the string is still shorter than the total number of required bits.\n\t // Extend the buffer to fill the data capacity of the symbol corresponding to\n\t // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n\t // and 00010001 (0x11) alternately.\n\t var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\t for (var i = 0; i < remainingByte; i++) {\n\t buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n\t }\n\n\t return createCodewords(buffer, version, errorCorrectionLevel)\n\t}\n\n\t/**\n\t * Encode input data with Reed-Solomon and return codewords with\n\t * relative error correction bits\n\t *\n\t * @param {BitBuffer} bitBuffer Data to encode\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewords = totalCodewords - ecTotalCodewords;\n\n\t // Total number of blocks\n\t var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel);\n\n\t // Calculate how many blocks each group should contain\n\t var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n\t var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n\n\t var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n\n\t var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n\t var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;\n\n\t // Number of EC codewords is the same for both groups\n\t var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;\n\n\t // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\t var rs = new ReedSolomonEncoder(ecCount);\n\n\t var offset = 0;\n\t var dcData = new Array(ecTotalBlocks);\n\t var ecData = new Array(ecTotalBlocks);\n\t var maxDataSize = 0;\n\t var buffer = BufferUtil.from(bitBuffer.buffer);\n\n\t // Divide the buffer into the required number of blocks\n\t for (var b = 0; b < ecTotalBlocks; b++) {\n\t var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;\n\n\t // extract a block of data from buffer\n\t dcData[b] = buffer.slice(offset, offset + dataSize);\n\n\t // Calculate EC codewords for this data block\n\t ecData[b] = rs.encode(dcData[b]);\n\n\t offset += dataSize;\n\t maxDataSize = Math.max(maxDataSize, dataSize);\n\t }\n\n\t // Create final data\n\t // Interleave the data and error correction codewords from each block\n\t var data = BufferUtil.alloc(totalCodewords);\n\t var index = 0;\n\t var i, r;\n\n\t // Add data codewords\n\t for (i = 0; i < maxDataSize; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t if (i < dcData[r].length) {\n\t data[index++] = dcData[r][i];\n\t }\n\t }\n\t }\n\n\t // Apped EC codewords\n\t for (i = 0; i < ecCount; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t data[index++] = ecData[r][i];\n\t }\n\t }\n\n\t return data\n\t}\n\n\t/**\n\t * Build QR Code symbol\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n\t * @param {MaskPattern} maskPattern Mask pattern\n\t * @return {Object} Object containing symbol data\n\t */\n\tfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n\t var segments;\n\n\t if (isArray(data)) {\n\t segments = Segments.fromArray(data);\n\t } else if (typeof data === 'string') {\n\t var estimatedVersion = version;\n\n\t if (!estimatedVersion) {\n\t var rawSegments = Segments.rawSplit(data);\n\n\t // Estimate best version that can contain raw splitted segments\n\t estimatedVersion = Version.getBestVersionForData(rawSegments,\n\t errorCorrectionLevel);\n\t }\n\n\t // Build optimized segments\n\t // If estimated version is undefined, try with the highest version\n\t segments = Segments.fromString(data, estimatedVersion || 40);\n\t } else {\n\t throw new Error('Invalid data')\n\t }\n\n\t // Get the min version that can contain data\n\t var bestVersion = Version.getBestVersionForData(segments,\n\t errorCorrectionLevel);\n\n\t // If no version is found, data cannot be stored\n\t if (!bestVersion) {\n\t throw new Error('The amount of data is too big to be stored in a QR Code')\n\t }\n\n\t // If not specified, use min version as default\n\t if (!version) {\n\t version = bestVersion;\n\n\t // Check if the specified version can contain the data\n\t } else if (version < bestVersion) {\n\t throw new Error('\\n' +\n\t 'The chosen QR Code version cannot contain this amount of data.\\n' +\n\t 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n\t )\n\t }\n\n\t var dataBits = createData(version, errorCorrectionLevel, segments);\n\n\t // Allocate matrix buffer\n\t var moduleCount = Utils.getSymbolSize(version);\n\t var modules = new BitMatrix(moduleCount);\n\n\t // Add function modules\n\t setupFinderPattern(modules, version);\n\t setupTimingPattern(modules);\n\t setupAlignmentPattern(modules, version);\n\n\t // Add temporary dummy bits for format info just to set them as reserved.\n\t // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n\t // since the masking operation must be performed only on the encoding region.\n\t // These blocks will be replaced with correct values later in code.\n\t setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n\t if (version >= 7) {\n\t setupVersionInfo(modules, version);\n\t }\n\n\t // Add data codewords\n\t setupData(modules, dataBits);\n\n\t if (isNaN(maskPattern)) {\n\t // Find best mask pattern\n\t maskPattern = MaskPattern.getBestMask(modules,\n\t setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n\t }\n\n\t // Apply mask pattern\n\t MaskPattern.applyMask(maskPattern, modules);\n\n\t // Replace format info bits with correct values\n\t setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n\n\t return {\n\t modules: modules,\n\t version: version,\n\t errorCorrectionLevel: errorCorrectionLevel,\n\t maskPattern: maskPattern,\n\t segments: segments\n\t }\n\t}\n\n\t/**\n\t * QR Code\n\t *\n\t * @param {String | Array} data Input data\n\t * @param {Object} options Optional configurations\n\t * @param {Number} options.version QR Code version\n\t * @param {String} options.errorCorrectionLevel Error correction level\n\t * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n\t */\n\texports.create = function create (data, options) {\n\t if (typeof data === 'undefined' || data === '') {\n\t throw new Error('No input text')\n\t }\n\n\t var errorCorrectionLevel = ECLevel.M;\n\t var version;\n\t var mask;\n\n\t if (typeof options !== 'undefined') {\n\t // Use higher error correction level as default\n\t errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n\t version = Version.from(options.version);\n\t mask = MaskPattern.from(options.maskPattern);\n\n\t if (options.toSJISFunc) {\n\t Utils.setToSJISFunction(options.toSJISFunc);\n\t }\n\t }\n\n\t return createSymbol(data, version, errorCorrectionLevel, mask)\n\t};\n\n\t},{\"../utils/buffer\":28,\"./alignment-pattern\":2,\"./bit-buffer\":4,\"./bit-matrix\":5,\"./error-correction-code\":7,\"./error-correction-level\":8,\"./finder-pattern\":9,\"./format-info\":10,\"./mask-pattern\":13,\"./mode\":14,\"./reed-solomon-encoder\":18,\"./segments\":20,\"./utils\":21,\"./version\":23,\"isarray\":33}],18:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Polynomial = require('./polynomial');\n\tvar Buffer = require('buffer').Buffer;\n\n\tfunction ReedSolomonEncoder (degree) {\n\t this.genPoly = undefined;\n\t this.degree = degree;\n\n\t if (this.degree) this.initialize(this.degree);\n\t}\n\n\t/**\n\t * Initialize the encoder.\n\t * The input param should correspond to the number of error correction codewords.\n\t *\n\t * @param {Number} degree\n\t */\n\tReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n\t // create an irreducible generator polynomial\n\t this.degree = degree;\n\t this.genPoly = Polynomial.generateECPolynomial(this.degree);\n\t};\n\n\t/**\n\t * Encodes a chunk of data\n\t *\n\t * @param {Buffer} data Buffer containing input data\n\t * @return {Buffer} Buffer containing encoded data\n\t */\n\tReedSolomonEncoder.prototype.encode = function encode (data) {\n\t if (!this.genPoly) {\n\t throw new Error('Encoder not initialized')\n\t }\n\n\t // Calculate EC for this data block\n\t // extends data size to data+genPoly size\n\t var pad = BufferUtil.alloc(this.degree);\n\t var paddedData = Buffer.concat([data, pad], data.length + this.degree);\n\n\t // The error correction codewords are the remainder after dividing the data codewords\n\t // by a generator polynomial\n\t var remainder = Polynomial.mod(paddedData, this.genPoly);\n\n\t // return EC data blocks (last n byte, where n is the degree of genPoly)\n\t // If coefficients number in remainder are less than genPoly degree,\n\t // pad with 0s to the left to reach the needed number of coefficients\n\t var start = this.degree - remainder.length;\n\t if (start > 0) {\n\t var buff = BufferUtil.alloc(this.degree);\n\t remainder.copy(buff, start);\n\n\t return buff\n\t }\n\n\t return remainder\n\t};\n\n\tmodule.exports = ReedSolomonEncoder;\n\n\t},{\"../utils/buffer\":28,\"./polynomial\":16,\"buffer\":30}],19:[function(require,module,exports){\n\tvar numeric = '[0-9]+';\n\tvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\n\tvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n\t '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n\t '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n\t '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\n\tkanji = kanji.replace(/u/g, '\\\\u');\n\n\tvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\n\n\texports.KANJI = new RegExp(kanji, 'g');\n\texports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\n\texports.BYTE = new RegExp(byte, 'g');\n\texports.NUMERIC = new RegExp(numeric, 'g');\n\texports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\n\n\tvar TEST_KANJI = new RegExp('^' + kanji + '$');\n\tvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\n\tvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\n\texports.testKanji = function testKanji (str) {\n\t return TEST_KANJI.test(str)\n\t};\n\n\texports.testNumeric = function testNumeric (str) {\n\t return TEST_NUMERIC.test(str)\n\t};\n\n\texports.testAlphanumeric = function testAlphanumeric (str) {\n\t return TEST_ALPHANUMERIC.test(str)\n\t};\n\n\t},{}],20:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar NumericData = require('./numeric-data');\n\tvar AlphanumericData = require('./alphanumeric-data');\n\tvar ByteData = require('./byte-data');\n\tvar KanjiData = require('./kanji-data');\n\tvar Regex = require('./regex');\n\tvar Utils = require('./utils');\n\tvar dijkstra = require('dijkstrajs');\n\n\t/**\n\t * Returns UTF8 byte length\n\t *\n\t * @param {String} str Input string\n\t * @return {Number} Number of byte\n\t */\n\tfunction getStringByteLength (str) {\n\t return unescape(encodeURIComponent(str)).length\n\t}\n\n\t/**\n\t * Get a list of segments of the specified mode\n\t * from a string\n\t *\n\t * @param {Mode} mode Segment mode\n\t * @param {String} str String to process\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegments (regex, mode, str) {\n\t var segments = [];\n\t var result;\n\n\t while ((result = regex.exec(str)) !== null) {\n\t segments.push({\n\t data: result[0],\n\t index: result.index,\n\t mode: mode,\n\t length: result[0].length\n\t });\n\t }\n\n\t return segments\n\t}\n\n\t/**\n\t * Extracts a series of segments with the appropriate\n\t * modes from a string\n\t *\n\t * @param {String} dataStr Input string\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegmentsFromString (dataStr) {\n\t var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n\t var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n\t var byteSegs;\n\t var kanjiSegs;\n\n\t if (Utils.isKanjiModeEnabled()) {\n\t byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n\t kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n\t } else {\n\t byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n\t kanjiSegs = [];\n\t }\n\n\t var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n\n\t return segs\n\t .sort(function (s1, s2) {\n\t return s1.index - s2.index\n\t })\n\t .map(function (obj) {\n\t return {\n\t data: obj.data,\n\t mode: obj.mode,\n\t length: obj.length\n\t }\n\t })\n\t}\n\n\t/**\n\t * Returns how many bits are needed to encode a string of\n\t * specified length with the specified mode\n\t *\n\t * @param {Number} length String length\n\t * @param {Mode} mode Segment mode\n\t * @return {Number} Bit length\n\t */\n\tfunction getSegmentBitsLength (length, mode) {\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return NumericData.getBitsLength(length)\n\t case Mode.ALPHANUMERIC:\n\t return AlphanumericData.getBitsLength(length)\n\t case Mode.KANJI:\n\t return KanjiData.getBitsLength(length)\n\t case Mode.BYTE:\n\t return ByteData.getBitsLength(length)\n\t }\n\t}\n\n\t/**\n\t * Merges adjacent segments which have the same mode\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction mergeSegments (segs) {\n\t return segs.reduce(function (acc, curr) {\n\t var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\t if (prevSeg && prevSeg.mode === curr.mode) {\n\t acc[acc.length - 1].data += curr.data;\n\t return acc\n\t }\n\n\t acc.push(curr);\n\t return acc\n\t }, [])\n\t}\n\n\t/**\n\t * Generates a list of all possible nodes combination which\n\t * will be used to build a segments graph.\n\t *\n\t * Nodes are divided by groups. Each group will contain a list of all the modes\n\t * in which is possible to encode the given text.\n\t *\n\t * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n\t * The group for '12345' will contain then 3 objects, one for each\n\t * possible encoding mode.\n\t *\n\t * Each node represents a possible segment.\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction buildNodes (segs) {\n\t var nodes = [];\n\t for (var i = 0; i < segs.length; i++) {\n\t var seg = segs[i];\n\n\t switch (seg.mode) {\n\t case Mode.NUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.ALPHANUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.KANJI:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t break\n\t case Mode.BYTE:\n\t nodes.push([\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t }\n\t }\n\n\t return nodes\n\t}\n\n\t/**\n\t * Builds a graph from a list of nodes.\n\t * All segments in each node group will be connected with all the segments of\n\t * the next group and so on.\n\t *\n\t * At each connection will be assigned a weight depending on the\n\t * segment's byte length.\n\t *\n\t * @param {Array} nodes Array of object with segments data\n\t * @param {Number} version QR Code version\n\t * @return {Object} Graph of all possible segments\n\t */\n\tfunction buildGraph (nodes, version) {\n\t var table = {};\n\t var graph = {'start': {}};\n\t var prevNodeIds = ['start'];\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t var nodeGroup = nodes[i];\n\t var currentNodeIds = [];\n\n\t for (var j = 0; j < nodeGroup.length; j++) {\n\t var node = nodeGroup[j];\n\t var key = '' + i + j;\n\n\t currentNodeIds.push(key);\n\t table[key] = { node: node, lastCount: 0 };\n\t graph[key] = {};\n\n\t for (var n = 0; n < prevNodeIds.length; n++) {\n\t var prevNodeId = prevNodeIds[n];\n\n\t if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n\t graph[prevNodeId][key] =\n\t getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n\t getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n\n\t table[prevNodeId].lastCount += node.length;\n\t } else {\n\t if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n\n\t graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n\t 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n\t }\n\t }\n\t }\n\n\t prevNodeIds = currentNodeIds;\n\t }\n\n\t for (n = 0; n < prevNodeIds.length; n++) {\n\t graph[prevNodeIds[n]]['end'] = 0;\n\t }\n\n\t return { map: graph, table: table }\n\t}\n\n\t/**\n\t * Builds a segment from a specified data and mode.\n\t * If a mode is not specified, the more suitable will be used.\n\t *\n\t * @param {String} data Input data\n\t * @param {Mode | String} modesHint Data mode\n\t * @return {Segment} Segment\n\t */\n\tfunction buildSingleSegment (data, modesHint) {\n\t var mode;\n\t var bestMode = Mode.getBestModeForData(data);\n\n\t mode = Mode.from(modesHint, bestMode);\n\n\t // Make sure data can be encoded\n\t if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n\t throw new Error('\"' + data + '\"' +\n\t ' cannot be encoded with mode ' + Mode.toString(mode) +\n\t '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n\t }\n\n\t // Use Mode.BYTE if Kanji support is disabled\n\t if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n\t mode = Mode.BYTE;\n\t }\n\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return new NumericData(data)\n\n\t case Mode.ALPHANUMERIC:\n\t return new AlphanumericData(data)\n\n\t case Mode.KANJI:\n\t return new KanjiData(data)\n\n\t case Mode.BYTE:\n\t return new ByteData(data)\n\t }\n\t}\n\n\t/**\n\t * Builds a list of segments from an array.\n\t * Array can contain Strings or Objects with segment's info.\n\t *\n\t * For each item which is a string, will be generated a segment with the given\n\t * string and the more appropriate encoding mode.\n\t *\n\t * For each item which is an object, will be generated a segment with the given\n\t * data and mode.\n\t * Objects must contain at least the property \"data\".\n\t * If property \"mode\" is not present, the more suitable mode will be used.\n\t *\n\t * @param {Array} array Array of objects with segments data\n\t * @return {Array} Array of Segments\n\t */\n\texports.fromArray = function fromArray (array) {\n\t return array.reduce(function (acc, seg) {\n\t if (typeof seg === 'string') {\n\t acc.push(buildSingleSegment(seg, null));\n\t } else if (seg.data) {\n\t acc.push(buildSingleSegment(seg.data, seg.mode));\n\t }\n\n\t return acc\n\t }, [])\n\t};\n\n\t/**\n\t * Builds an optimized sequence of segments from a string,\n\t * which will produce the shortest possible bitstream.\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of segments\n\t */\n\texports.fromString = function fromString (data, version) {\n\t var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n\n\t var nodes = buildNodes(segs);\n\t var graph = buildGraph(nodes, version);\n\t var path = dijkstra.find_path(graph.map, 'start', 'end');\n\n\t var optimizedSegs = [];\n\t for (var i = 1; i < path.length - 1; i++) {\n\t optimizedSegs.push(graph.table[path[i]].node);\n\t }\n\n\t return exports.fromArray(mergeSegments(optimizedSegs))\n\t};\n\n\t/**\n\t * Splits a string in various segments with the modes which\n\t * best represent their content.\n\t * The produced segments are far from being optimized.\n\t * The output of this function is only used to estimate a QR Code version\n\t * which may contain the data.\n\t *\n\t * @param {string} data Input string\n\t * @return {Array} Array of segments\n\t */\n\texports.rawSplit = function rawSplit (data) {\n\t return exports.fromArray(\n\t getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\t )\n\t};\n\n\t},{\"./alphanumeric-data\":3,\"./byte-data\":6,\"./kanji-data\":12,\"./mode\":14,\"./numeric-data\":15,\"./regex\":19,\"./utils\":21,\"dijkstrajs\":31}],21:[function(require,module,exports){\n\tvar toSJISFunction;\n\tvar CODEWORDS_COUNT = [\n\t 0, // Not used\n\t 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n\t 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n\t 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n\t 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n\t];\n\n\t/**\n\t * Returns the QR Code size for the specified version\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} size of QR code\n\t */\n\texports.getSymbolSize = function getSymbolSize (version) {\n\t if (!version) throw new Error('\"version\" cannot be null or undefined')\n\t if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n\t return version * 4 + 17\n\t};\n\n\t/**\n\t * Returns the total number of codewords used to store data and EC information.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Data length in bits\n\t */\n\texports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n\t return CODEWORDS_COUNT[version]\n\t};\n\n\t/**\n\t * Encode data with Bose-Chaudhuri-Hocquenghem\n\t *\n\t * @param {Number} data Value to encode\n\t * @return {Number} Encoded value\n\t */\n\texports.getBCHDigit = function (data) {\n\t var digit = 0;\n\n\t while (data !== 0) {\n\t digit++;\n\t data >>>= 1;\n\t }\n\n\t return digit\n\t};\n\n\texports.setToSJISFunction = function setToSJISFunction (f) {\n\t if (typeof f !== 'function') {\n\t throw new Error('\"toSJISFunc\" is not a valid function.')\n\t }\n\n\t toSJISFunction = f;\n\t};\n\n\texports.isKanjiModeEnabled = function () {\n\t return typeof toSJISFunction !== 'undefined'\n\t};\n\n\texports.toSJIS = function toSJIS (kanji) {\n\t return toSJISFunction(kanji)\n\t};\n\n\t},{}],22:[function(require,module,exports){\n\t/**\n\t * Check if QR Code version is valid\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Boolean} true if valid version, false otherwise\n\t */\n\texports.isValid = function isValid (version) {\n\t return !isNaN(version) && version >= 1 && version <= 40\n\t};\n\n\t},{}],23:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\tvar ECCode = require('./error-correction-code');\n\tvar ECLevel = require('./error-correction-level');\n\tvar Mode = require('./mode');\n\tvar VersionCheck = require('./version-check');\n\tvar isArray = require('isarray');\n\n\t// Generator polynomial used to encode version information\n\tvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n\tvar G18_BCH = Utils.getBCHDigit(G18);\n\n\tfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\tfunction getReservedBitsCount (mode, version) {\n\t // Character count indicator + mode indicator bits\n\t return Mode.getCharCountIndicator(mode, version) + 4\n\t}\n\n\tfunction getTotalBitsFromDataArray (segments, version) {\n\t var totalBits = 0;\n\n\t segments.forEach(function (data) {\n\t var reservedBits = getReservedBitsCount(data.mode, version);\n\t totalBits += reservedBits + data.getBitsLength();\n\t });\n\n\t return totalBits\n\t}\n\n\tfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t var length = getTotalBitsFromDataArray(segments, currentVersion);\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\t/**\n\t * Returns version number from a value.\n\t * If value is not a valid version, returns defaultValue\n\t *\n\t * @param {Number|String} value QR Code version\n\t * @param {Number} defaultValue Fallback value\n\t * @return {Number} QR Code version number\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (VersionCheck.isValid(value)) {\n\t return parseInt(value, 10)\n\t }\n\n\t return defaultValue\n\t};\n\n\t/**\n\t * Returns how much data can be stored with the specified QR code version\n\t * and error correction level\n\t *\n\t * @param {Number} version QR Code version (1-40)\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} Quantity of storable data\n\t */\n\texports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t // Use Byte mode as default\n\t if (typeof mode === 'undefined') mode = Mode.BYTE;\n\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n\t var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version);\n\n\t // Return max number of storable codewords\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return Math.floor((usableBits / 10) * 3)\n\n\t case Mode.ALPHANUMERIC:\n\t return Math.floor((usableBits / 11) * 2)\n\n\t case Mode.KANJI:\n\t return Math.floor(usableBits / 13)\n\n\t case Mode.BYTE:\n\t default:\n\t return Math.floor(usableBits / 8)\n\t }\n\t};\n\n\t/**\n\t * Returns the minimum version needed to contain the amount of data\n\t *\n\t * @param {Segment} data Segment of data\n\t * @param {Number} [errorCorrectionLevel=H] Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} QR Code version\n\t */\n\texports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n\t var seg;\n\n\t var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n\t if (isArray(data)) {\n\t if (data.length > 1) {\n\t return getBestVersionForMixedData(data, ecl)\n\t }\n\n\t if (data.length === 0) {\n\t return 1\n\t }\n\n\t seg = data[0];\n\t } else {\n\t seg = data;\n\t }\n\n\t return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n\t};\n\n\t/**\n\t * Returns version information with relative error correction bits\n\t *\n\t * The version information is included in QR Code symbols of version 7 or larger.\n\t * It consists of an 18-bit sequence containing 6 data bits,\n\t * with 12 error correction bits calculated using the (18, 6) Golay code.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Encoded version info bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (version) {\n\t if (!VersionCheck.isValid(version) || version < 7) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t var d = version << 12;\n\n\t while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n\t d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH));\n\t }\n\n\t return (version << 12) | d\n\t};\n\n\t},{\"./error-correction-code\":7,\"./error-correction-level\":8,\"./mode\":14,\"./utils\":21,\"./version-check\":22,\"isarray\":33}],24:[function(require,module,exports){\n\n\tvar canPromise = require('./can-promise');\n\n\tvar QRCode = require('./core/qrcode');\n\tvar CanvasRenderer = require('./renderer/canvas');\n\tvar SvgRenderer = require('./renderer/svg-tag.js');\n\n\tfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n\t var args = [].slice.call(arguments, 1);\n\t var argsNum = args.length;\n\t var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n\t if (!isLastArgCb && !canPromise()) {\n\t throw new Error('Callback required as last argument')\n\t }\n\n\t if (isLastArgCb) {\n\t if (argsNum < 2) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 2) {\n\t cb = text;\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 3) {\n\t if (canvas.getContext && typeof cb === 'undefined') {\n\t cb = opts;\n\t opts = undefined;\n\t } else {\n\t cb = opts;\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\t }\n\t } else {\n\t if (argsNum < 1) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 1) {\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 2 && !canvas.getContext) {\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\n\t return new Promise(function (resolve, reject) {\n\t try {\n\t var data = QRCode.create(text, opts);\n\t resolve(renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t reject(e);\n\t }\n\t })\n\t }\n\n\t try {\n\t var data = QRCode.create(text, opts);\n\t cb(null, renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t cb(e);\n\t }\n\t}\n\n\texports.create = QRCode.create;\n\texports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\n\texports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n\t// only svg for now.\n\texports.toString = renderCanvas.bind(null, function (data, _, opts) {\n\t return SvgRenderer.render(data, opts)\n\t});\n\n\t},{\"./can-promise\":1,\"./core/qrcode\":17,\"./renderer/canvas\":25,\"./renderer/svg-tag.js\":26}],25:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction clearCanvas (ctx, canvas, size) {\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t if (!canvas.style) canvas.style = {};\n\t canvas.height = size;\n\t canvas.width = size;\n\t canvas.style.height = size + 'px';\n\t canvas.style.width = size + 'px';\n\t}\n\n\tfunction getCanvasElement () {\n\t try {\n\t return document.createElement('canvas')\n\t } catch (e) {\n\t throw new Error('You need to specify a canvas element')\n\t }\n\t}\n\n\texports.render = function render (qrData, canvas, options) {\n\t var opts = options;\n\t var canvasEl = canvas;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!canvas) {\n\t canvasEl = getCanvasElement();\n\t }\n\n\t opts = Utils.getOptions(opts);\n\t var size = Utils.getImageWidth(qrData.modules.size, opts);\n\n\t var ctx = canvasEl.getContext('2d');\n\t var image = ctx.createImageData(size, size);\n\t Utils.qrToImageData(image.data, qrData, opts);\n\n\t clearCanvas(ctx, canvasEl, size);\n\t ctx.putImageData(image, 0, 0);\n\n\t return canvasEl\n\t};\n\n\texports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n\t var opts = options;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!opts) opts = {};\n\n\t var canvasEl = exports.render(qrData, canvas, opts);\n\n\t var type = opts.type || 'image/png';\n\t var rendererOpts = opts.rendererOpts || {};\n\n\t return canvasEl.toDataURL(type, rendererOpts.quality)\n\t};\n\n\t},{\"./utils\":27}],26:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction getColorAttrib (color, attrib) {\n\t var alpha = color.a / 255;\n\t var str = attrib + '=\"' + color.hex + '\"';\n\n\t return alpha < 1\n\t ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n\t : str\n\t}\n\n\tfunction svgCmd (cmd, x, y) {\n\t var str = cmd + x;\n\t if (typeof y !== 'undefined') str += ' ' + y;\n\n\t return str\n\t}\n\n\tfunction qrToPath (data, size, margin) {\n\t var path = '';\n\t var moveBy = 0;\n\t var newRow = false;\n\t var lineLength = 0;\n\n\t for (var i = 0; i < data.length; i++) {\n\t var col = Math.floor(i % size);\n\t var row = Math.floor(i / size);\n\n\t if (!col && !newRow) newRow = true;\n\n\t if (data[i]) {\n\t lineLength++;\n\n\t if (!(i > 0 && col > 0 && data[i - 1])) {\n\t path += newRow\n\t ? svgCmd('M', col + margin, 0.5 + row + margin)\n\t : svgCmd('m', moveBy, 0);\n\n\t moveBy = 0;\n\t newRow = false;\n\t }\n\n\t if (!(col + 1 < size && data[i + 1])) {\n\t path += svgCmd('h', lineLength);\n\t lineLength = 0;\n\t }\n\t } else {\n\t moveBy++;\n\t }\n\t }\n\n\t return path\n\t}\n\n\texports.render = function render (qrData, options, cb) {\n\t var opts = Utils.getOptions(options);\n\t var size = qrData.modules.size;\n\t var data = qrData.modules.data;\n\t var qrcodesize = size + opts.margin * 2;\n\n\t var bg = !opts.color.light.a\n\t ? ''\n\t : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n\t ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>';\n\n\t var path =\n\t '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n\t ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>';\n\n\t var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n\n\t var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n\n\t var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n';\n\n\t if (typeof cb === 'function') {\n\t cb(null, svgTag);\n\t }\n\n\t return svgTag\n\t};\n\n\t},{\"./utils\":27}],27:[function(require,module,exports){\n\tfunction hex2rgba (hex) {\n\t if (typeof hex === 'number') {\n\t hex = hex.toString();\n\t }\n\n\t if (typeof hex !== 'string') {\n\t throw new Error('Color should be defined as hex string')\n\t }\n\n\t var hexCode = hex.slice().replace('#', '').split('');\n\t if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n\t throw new Error('Invalid hex color: ' + hex)\n\t }\n\n\t // Convert from short to long form (fff -> ffffff)\n\t if (hexCode.length === 3 || hexCode.length === 4) {\n\t hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n\t return [c, c]\n\t }));\n\t }\n\n\t // Add default alpha value\n\t if (hexCode.length === 6) hexCode.push('F', 'F');\n\n\t var hexValue = parseInt(hexCode.join(''), 16);\n\n\t return {\n\t r: (hexValue >> 24) & 255,\n\t g: (hexValue >> 16) & 255,\n\t b: (hexValue >> 8) & 255,\n\t a: hexValue & 255,\n\t hex: '#' + hexCode.slice(0, 6).join('')\n\t }\n\t}\n\n\texports.getOptions = function getOptions (options) {\n\t if (!options) options = {};\n\t if (!options.color) options.color = {};\n\n\t var margin = typeof options.margin === 'undefined' ||\n\t options.margin === null ||\n\t options.margin < 0 ? 4 : options.margin;\n\n\t var width = options.width && options.width >= 21 ? options.width : undefined;\n\t var scale = options.scale || 4;\n\n\t return {\n\t width: width,\n\t scale: width ? 4 : scale,\n\t margin: margin,\n\t color: {\n\t dark: hex2rgba(options.color.dark || '#000000ff'),\n\t light: hex2rgba(options.color.light || '#ffffffff')\n\t },\n\t type: options.type,\n\t rendererOpts: options.rendererOpts || {}\n\t }\n\t};\n\n\texports.getScale = function getScale (qrSize, opts) {\n\t return opts.width && opts.width >= qrSize + opts.margin * 2\n\t ? opts.width / (qrSize + opts.margin * 2)\n\t : opts.scale\n\t};\n\n\texports.getImageWidth = function getImageWidth (qrSize, opts) {\n\t var scale = exports.getScale(qrSize, opts);\n\t return Math.floor((qrSize + opts.margin * 2) * scale)\n\t};\n\n\texports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n\t var size = qr.modules.size;\n\t var data = qr.modules.data;\n\t var scale = exports.getScale(size, opts);\n\t var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n\t var scaledMargin = opts.margin * scale;\n\t var palette = [opts.color.light, opts.color.dark];\n\n\t for (var i = 0; i < symbolSize; i++) {\n\t for (var j = 0; j < symbolSize; j++) {\n\t var posDst = (i * symbolSize + j) * 4;\n\t var pxColor = opts.color.light;\n\n\t if (i >= scaledMargin && j >= scaledMargin &&\n\t i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n\t var iSrc = Math.floor((i - scaledMargin) / scale);\n\t var jSrc = Math.floor((j - scaledMargin) / scale);\n\t pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n\t }\n\n\t imgData[posDst++] = pxColor.r;\n\t imgData[posDst++] = pxColor.g;\n\t imgData[posDst++] = pxColor.b;\n\t imgData[posDst] = pxColor.a;\n\t }\n\t }\n\t};\n\n\t},{}],28:[function(require,module,exports){\n\n\tvar isArray = require('isarray');\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }};\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff;\n\n\tfunction Buffer (arg, offset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, offset, length)\n\t }\n\n\t if (typeof arg === 'number') {\n\t return allocUnsafe(this, arg)\n\t }\n\n\t return from(this, arg, offset, length)\n\t}\n\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype;\n\t Buffer.__proto__ = Uint8Array;\n\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\n\tfunction createBuffer (that, length) {\n\t var buf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t buf = new Uint8Array(length);\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = that;\n\t if (buf === null) {\n\t buf = new Buffer(length);\n\t }\n\t buf.length = length;\n\t }\n\n\t return buf\n\t}\n\n\tfunction allocUnsafe (that, size) {\n\t var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t buf[i] = 0;\n\t }\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromString (that, string) {\n\t var length = byteLength(string) | 0;\n\t var buf = createBuffer(that, length);\n\n\t var actual = buf.write(string);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(that, length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = fromArrayLike(that, buf);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(that, len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction byteLength (string) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string;\n\t }\n\n\t var len = string.length;\n\t if (len === 0) return 0\n\n\t return utf8ToBytes(string).length\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction from (that, value, offset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, offset, length)\n\t }\n\n\t if (typeof value === 'string') {\n\t return fromString(that, value)\n\t }\n\n\t return fromObject(that, value)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0;\n\t if (isFinite(length)) {\n\t length = length | 0;\n\t } else {\n\t length = undefined;\n\t }\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t return utf8Write(this, string, offset, length)\n\t};\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype;\n\t } else {\n\t var sliceLen = end - start;\n\t newBuf = new Buffer(sliceLen, undefined);\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start];\n\t }\n\t }\n\n\t return newBuf\n\t};\n\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\t var i;\n\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\tBuffer.prototype.fill = function fill (val, start, end) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t end = this.length;\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if (code < 256) {\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val);\n\t var len = bytes.length;\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return createBuffer(null, 0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = allocUnsafe(null, length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tBuffer.byteLength = byteLength;\n\n\tBuffer.prototype._isBuffer = true;\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t};\n\n\tmodule.exports.alloc = function (size) {\n\t var buffer = new Buffer(size);\n\t buffer.fill(0);\n\t return buffer\n\t};\n\n\tmodule.exports.from = function (data) {\n\t return new Buffer(data)\n\t};\n\n\t},{\"isarray\":33}],29:[function(require,module,exports){\n\n\texports.byteLength = byteLength;\n\texports.toByteArray = toByteArray;\n\texports.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(\n\t uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n\t ));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\t},{}],30:[function(require,module,exports){\n\n\tvar base64 = require('base64-js');\n\tvar ieee754 = require('ieee754');\n\tvar customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n\t ? Symbol.for('nodejs.util.inspect.custom')\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tvar K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t var proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (ArrayBuffer.isView(value)) {\n\t return fromArrayLike(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, ArrayBuffer) ||\n\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t var valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t var b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(\n\t value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n\t )\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t var length = byteLength(string, encoding) | 0;\n\t var buf = createBuffer(length);\n\n\t var actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t var x = a.length;\n\t var y = b.length;\n\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = Buffer.allocUnsafe(length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (isInstance(buf, Uint8Array)) {\n\t buf = Buffer.from(buf);\n\t }\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t var len = string.length;\n\t var mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t var i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = '';\n\t var max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, Uint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t var x = thisEnd - thisStart;\n\t var y = end - start;\n\t var len = Math.min(x, y);\n\n\t var thisCopy = this.slice(thisStart, thisEnd);\n\t var targetCopy = target.slice(start, end);\n\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1;\n\t var arrLength = arr.length;\n\t var valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t var i;\n\t if (dir) {\n\t var foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true;\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t var remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t var strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t var res = [];\n\n\t var i = start;\n\t while (i < end) {\n\t var firstByte = buf[i];\n\t var codePoint = null;\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = '';\n\t var i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t var out = '';\n\t for (var i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end);\n\t var res = '';\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t var val = this[offset + --byteLength];\n\t var mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var i = byteLength;\n\t var mul = 1;\n\t var val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var mul = 1;\n\t var i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = 0;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\n\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (var i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t var len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo;\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tvar hexSliceLookupTable = (function () {\n\t var alphabet = '0123456789abcdef';\n\t var table = new Array(256);\n\t for (var i = 0; i < 16; ++i) {\n\t var i16 = i * 16;\n\t for (var j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t},{\"base64-js\":29,\"ieee754\":32}],31:[function(require,module,exports){\n\n\t/******************************************************************************\n\t * Created 2008-08-19.\n\t *\n\t * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n\t *\n\t * Copyright (C) 2008\n\t * Wyatt Baldwin <self@wyattbaldwin.com>\n\t * All rights reserved\n\t *\n\t * Licensed under the MIT license.\n\t *\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *****************************************************************************/\n\tvar dijkstra = {\n\t single_source_shortest_paths: function(graph, s, d) {\n\t // Predecessor map for each node that has been encountered.\n\t // node ID => predecessor node ID\n\t var predecessors = {};\n\n\t // Costs of shortest paths from s to all nodes encountered.\n\t // node ID => cost\n\t var costs = {};\n\t costs[s] = 0;\n\n\t // Costs of shortest paths from s to all nodes encountered; differs from\n\t // `costs` in that it provides easy access to the node that currently has\n\t // the known shortest path from s.\n\t // XXX: Do we actually need both `costs` and `open`?\n\t var open = dijkstra.PriorityQueue.make();\n\t open.push(s, 0);\n\n\t var closest,\n\t u, v,\n\t cost_of_s_to_u,\n\t adjacent_nodes,\n\t cost_of_e,\n\t cost_of_s_to_u_plus_cost_of_e,\n\t cost_of_s_to_v,\n\t first_visit;\n\t while (!open.empty()) {\n\t // In the nodes remaining in graph that have a known cost from s,\n\t // find the node, u, that currently has the shortest path from s.\n\t closest = open.pop();\n\t u = closest.value;\n\t cost_of_s_to_u = closest.cost;\n\n\t // Get nodes adjacent to u...\n\t adjacent_nodes = graph[u] || {};\n\n\t // ...and explore the edges that connect u to those nodes, updating\n\t // the cost of the shortest paths to any or all of those nodes as\n\t // necessary. v is the node across the current edge from u.\n\t for (v in adjacent_nodes) {\n\t if (adjacent_nodes.hasOwnProperty(v)) {\n\t // Get the cost of the edge running from u to v.\n\t cost_of_e = adjacent_nodes[v];\n\n\t // Cost of s to u plus the cost of u to v across e--this is *a*\n\t // cost from s to v that may or may not be less than the current\n\t // known cost to v.\n\t cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n\t // If we haven't visited v yet OR if the current known cost from s to\n\t // v is greater than the new cost we just found (cost of s to u plus\n\t // cost of u to v across e), update v's cost in the cost list and\n\t // update v's predecessor in the predecessor list (it's now u).\n\t cost_of_s_to_v = costs[v];\n\t first_visit = (typeof costs[v] === 'undefined');\n\t if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n\t costs[v] = cost_of_s_to_u_plus_cost_of_e;\n\t open.push(v, cost_of_s_to_u_plus_cost_of_e);\n\t predecessors[v] = u;\n\t }\n\t }\n\t }\n\t }\n\n\t if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n\t var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n\t throw new Error(msg);\n\t }\n\n\t return predecessors;\n\t },\n\n\t extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n\t var nodes = [];\n\t var u = d;\n\t var predecessor;\n\t while (u) {\n\t nodes.push(u);\n\t predecessor = predecessors[u];\n\t u = predecessors[u];\n\t }\n\t nodes.reverse();\n\t return nodes;\n\t },\n\n\t find_path: function(graph, s, d) {\n\t var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n\t return dijkstra.extract_shortest_path_from_predecessor_list(\n\t predecessors, d);\n\t },\n\n\t /**\n\t * A very naive priority queue implementation.\n\t */\n\t PriorityQueue: {\n\t make: function (opts) {\n\t var T = dijkstra.PriorityQueue,\n\t t = {},\n\t key;\n\t opts = opts || {};\n\t for (key in T) {\n\t if (T.hasOwnProperty(key)) {\n\t t[key] = T[key];\n\t }\n\t }\n\t t.queue = [];\n\t t.sorter = opts.sorter || T.default_sorter;\n\t return t;\n\t },\n\n\t default_sorter: function (a, b) {\n\t return a.cost - b.cost;\n\t },\n\n\t /**\n\t * Add a new item to the queue and ensure the highest priority element\n\t * is at the front of the queue.\n\t */\n\t push: function (value, cost) {\n\t var item = {value: value, cost: cost};\n\t this.queue.push(item);\n\t this.queue.sort(this.sorter);\n\t },\n\n\t /**\n\t * Return the highest priority element in the queue.\n\t */\n\t pop: function () {\n\t return this.queue.shift();\n\t },\n\n\t empty: function () {\n\t return this.queue.length === 0;\n\t }\n\t }\n\t};\n\n\n\t// node.js module exports\n\tif (typeof module !== 'undefined') {\n\t module.exports = dijkstra;\n\t}\n\n\t},{}],32:[function(require,module,exports){\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\n\t},{}],33:[function(require,module,exports){\n\tvar toString = {}.toString;\n\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\t},{}]},{},[24])(24)\n\t});\n\n\n\t});\n\n\tvar index = {\n\t name: 'qrcode',\n\t props: {\n\t /**\n\t * The value of the QR code.\n\t */\n\t value: null,\n\n\t /**\n\t * The options for the QR code generator.\n\t * {@link https://github.com/soldair/node-qrcode#qr-code-options}\n\t */\n\t options: Object,\n\n\t /**\n\t * The tag name of the component's root element.\n\t */\n\t tag: {\n\t type: String,\n\t default: 'canvas'\n\t }\n\t },\n\t render: function render(createElement) {\n\t return createElement(this.tag, this.$slots.default);\n\t },\n\t watch: {\n\t $props: {\n\t deep: true,\n\t immediate: true,\n\n\t /**\n\t * Update the QR code when props changed.\n\t */\n\t handler: function handler() {\n\t if (this.$el) {\n\t this.generate();\n\t }\n\t }\n\t }\n\t },\n\t methods: {\n\t /**\n\t * Generate QR code.\n\t */\n\t generate: function generate() {\n\t var _this = this;\n\n\t var options = this.options,\n\t tag = this.tag;\n\t var value = String(this.value);\n\n\t if (tag === 'canvas') {\n\t qrcode.toCanvas(this.$el, value, options, function (error) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\t });\n\t } else if (tag === 'img') {\n\t qrcode.toDataURL(value, options, function (error, url) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.src = url;\n\t });\n\t } else {\n\t qrcode.toString(value, options, function (error, string) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.innerHTML = string;\n\t });\n\t }\n\t }\n\t },\n\t mounted: function mounted() {\n\t this.generate();\n\t }\n\t};\n\n\treturn index;\n\n})));\n","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\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, `.share-expiry-time[data-v-66d8c844]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-66d8c844]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-66d8c844]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-66d8c844]{padding:var(--border-radius-element);max-width:300px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue\"],\"names\":[],\"mappings\":\"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.share-expiry-time {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n .hint-icon {\\n padding: 0;\\n margin: 0;\\n width: 24px;\\n height: 24px;\\n }\\n}\\n\\n.hint-heading {\\n text-align: center;\\n font-size: 1rem;\\n margin-top: 8px;\\n padding-bottom: 8px;\\n margin-bottom: 0;\\n border-bottom: 1px solid var(--color-border);\\n}\\n\\n.hint-body {\\n padding: var(--border-radius-element);\\n max-width: 300px;\\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, `.sharing-entry__internal .avatar-external[data-v-57874406]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-57874406]{opacity:1;color:var(--color-success)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue\"],\"names\":[],\"mappings\":\"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.sharing-entry__internal {\\n\\t.avatar-external {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-success);\\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, `.sharing-entry[data-v-44339fa4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-44339fa4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-44339fa4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-44339fa4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-44339fa4]{margin-inline-start:auto !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\t&__desc {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tposition: relative;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__title {\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tmax-width: inherit;\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\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, `.sharing-entry__inherited .avatar-shared[data-v-a6cc72e6]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingInherited.vue\"],\"names\":[],\"mappings\":\"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA\",\"sourcesContent\":[\"\\n.sharing-entry__inherited {\\n\\t.avatar-shared {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\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, `.sharingTabDetailsView[data-v-4d0ee506]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4d0ee506]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4d0ee506]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4d0ee506]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4d0ee506]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4d0ee506]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4d0ee506]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4d0ee506]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4d0ee506]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4d0ee506] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4d0ee506]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4d0ee506]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4d0ee506]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4d0ee506]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-4d0ee506]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]:first-child{margin-inline-start:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA\",\"sourcesContent\":[\"\\n.sharingTabDetailsView {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0.2em;\\n\\n\\t\\tspan {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\th1 {\\n\\t\\t\\t\\tfont-size: 15px;\\n\\t\\t\\t\\tpadding-inline-start: 0.3em;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: relative;\\n\\t\\toverflow: scroll;\\n\\t\\tflex-shrink: 1;\\n\\t\\tpadding: 4px;\\n\\t\\tpadding-inline-end: 12px;\\n\\t}\\n\\n\\t&__quick-permissions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0 auto;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\tspan:nth-child(1) {\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\t\\tpadding: 0.1em;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(label span) {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\\n\\t\\t\\t\\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\\n\\t\\t\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t\\t\\t.subline {\\n\\t\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced-control {\\n\\t\\twidth: 100%;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\ttext-align: start;\\n\\t\\tpadding-inline-start: 0;\\n\\n\\t\\tsection {\\n\\n\\t\\t\\ttextarea,\\n\\t\\t\\tdiv.mx-datepicker {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\ttextarea {\\n\\t\\t\\t\\theight: 80px;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/*\\n\\t\\t\\t The following style is applied out of the component's scope\\n\\t\\t\\t to remove padding from the label.checkbox-radio-switch__label,\\n\\t\\t\\t which is used to group radio checkbox items. The use of ::v-deep\\n\\t\\t\\t ensures that the padding is modified without being affected by\\n\\t\\t\\t the component's scoping.\\n\\t\\t\\t Without this achieving left alignment for the checkboxes would not\\n\\t\\t\\t be possible.\\n\\t\\t\\t*/\\n\\t\\t\\tspan :deep(label) {\\n\\t\\t\\t\\tpadding-inline-start: 0 !important;\\n\\t\\t\\t\\tbackground-color: initial !important;\\n\\t\\t\\t\\tborder: none !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\tsection.custom-permissions-group {\\n\\t\\t\\t\\tpadding-inline-start: 1.5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding-block-end: 6px;\\n\\t}\\n\\n\\t&__delete {\\n\\t\\t> button:first-child {\\n\\t\\t\\tcolor: rgb(223, 7, 7);\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: flex-start;\\n\\t\\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\\n\\n\\t\\t.button-group {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmargin-top: 16px;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-inline-start: 16px;\\n\\n\\t\\t\\t\\t&:first-child {\\n\\t\\t\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-fe8ed59e]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-fe8ed59e]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-fe8ed59e]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-fe8ed59e]{margin-inline-start:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.sections.length > 0 }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1),_vm._v(\" \"),(_vm.sections.length > 0 && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,1027936137)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"sharingTab__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.fileInfo),{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('CollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!./index-CJAYjuyf.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./index-CJAYjuyf.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import './assets/index-CJAYjuyf.css';\nimport { t } from \"@nextcloud/l10n\";\nimport NcAvatar from \"@nextcloud/vue/dist/Components/NcAvatar.js\";\nimport NcSelect from \"@nextcloud/vue/dist/Components/NcSelect.js\";\nimport debounce from \"lodash-es/debounce.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport { reactive, set } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nclass CollectionService {\n constructor() {\n this.http = axios;\n }\n listCollection(collectionId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }));\n }\n renameCollection(collectionId, collectionName) {\n return this.http.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n collectionName\n }).then((result) => {\n return result.data.ocs.data;\n });\n }\n getCollectionsByResource(resourceType, resourceId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then((result) => {\n return result.data.ocs.data;\n });\n }\n createCollection(resourceType, resourceId, name) {\n return this.http.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), {\n name\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n addResource(collectionId, resourceType, resourceId) {\n resourceId = \"\" + resourceId;\n return this.http.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n resourceType,\n resourceId\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n removeResource(collectionId, resourceType, resourceId) {\n return this.http.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then((response) => {\n return response.data.ocs.data;\n });\n }\n search(query) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then((response) => {\n return response.data.ocs.data;\n });\n }\n}\nconst service = new CollectionService();\nconst state = reactive({\n collections: []\n});\nconst mutations = {\n addCollections(collections) {\n set(state, \"collections\", collections);\n },\n addCollection(collection) {\n state.collections.push(collection);\n },\n removeCollection(collectionId) {\n set(state, \"collections\", state.collections.filter((item) => item.id !== collectionId));\n },\n updateCollection(collection) {\n const index = state.collections.findIndex((_item) => _item.id === collection.id);\n if (index !== -1) {\n set(state.collections, index, collection);\n } else {\n state.collections.push(collection);\n }\n }\n};\nconst actions = {\n fetchCollectionsByResource({ resourceType, resourceId }) {\n return service.getCollectionsByResource(resourceType, resourceId).then((collections) => {\n mutations.addCollections(collections);\n return collections;\n });\n },\n createCollection({ baseResourceType, baseResourceId, resourceType, resourceId, name }) {\n return service.createCollection(baseResourceType, baseResourceId, name).then((collection) => {\n mutations.addCollection(collection);\n actions.addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n });\n },\n renameCollection({ collectionId, name }) {\n return service.renameCollection(collectionId, name).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n addResourceToCollection({ collectionId, resourceType, resourceId }) {\n return service.addResource(collectionId, resourceType, resourceId).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n removeResource({ collectionId, resourceType, resourceId }) {\n return service.removeResource(collectionId, resourceType, resourceId).then((collection) => {\n if (collection.resources.length > 0) {\n mutations.updateCollection(collection);\n } else {\n mutations.removeCollection(collection);\n }\n });\n },\n search(query) {\n return service.search(query);\n }\n};\nfunction normalizeComponent(scriptExports, render3, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render3) {\n options.render = render3;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$1 = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: false,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n limitedResources() {\n return (collection) => collection.resources ? collection.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n hideDetails() {\n this.detailsOpen = false;\n },\n removeResource(collection, resource) {\n actions.removeResource({\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n actions.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((collection) => {\n this.newName = null;\n }).catch((e) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\"));\n console.error(e);\n setTimeout(() => {\n set(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"shouldshake\": _vm.error.rename }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.limitedResources(_vm.collection), function(resource) {\n return _c(\"a\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } })]);\n }), 0) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"core\", \"Hide details\") : _vm.t(\"core\", \"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error.rename ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error.rename) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.collection.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(\"a\", { attrs: { \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })]);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"42733c12\",\n null,\n null\n);\nconst CollectionListItem = __component__$1.exports;\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _debouncedSearch = debounce(\n function(query, loading) {\n if (query !== \"\") {\n loading(true);\n actions.search(query).then((collections) => {\n this.searchCollections = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n },\n 500,\n {}\n);\nconst _sfc_main = {\n name: \"CollectionList\",\n components: {\n CollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n return {\n state\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((collection) => {\n return typeof collection.resources.find((resource) => resource && resource.id === \"\" + this.id && resource.type === this.type) !== \"undefined\";\n });\n },\n placeholder() {\n return this.isSelectOpen ? t(\"core\", \"Type to search for existing projects\") : t(\"core\", \"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (this.collections.findIndex((collection) => collection.id === this.searchCollections[index].id) === -1) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n }\n },\n watch: {\n type() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n id() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n isActive(isActive) {\n if (isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n }\n },\n mounted() {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n t,\n select(selectedOption, id) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((id2) => {\n actions.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId: id2,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n actions.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), e);\n });\n }\n },\n search(query, loading) {\n _debouncedSearch.bind(this)(query, loading);\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = false;\n },\n isVueComponent(object) {\n return object._isVue;\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"core\", \"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"CollectionListItem\", { key: collection.id, attrs: { \"collection\": collection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"8ebb2593\",\n null,\n null\n);\nconst CollectionList = __component__.exports;\nexport {\n CollectionList,\n CollectionListItem\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n // eslint-disable-next-line camelcase\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n // eslint-disable-next-line camelcase\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the default days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n * @return {boolean}\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { isFileRequest } from '../services/SharingService';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param {object} ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch (e) {\n console.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return {object} the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n * @return {string} date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n * @param {string} date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n * @return {string} date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n * @param {string} passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param {boolean} sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n * @return {string} 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, File, Permission, davRemoteURL, davRootPath } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nimport logger from './logger';\nconst headers = {\n 'Content-Type': 'application/json',\n};\nconst ocsEntryToNode = async function (ocsEntry) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n ocsEntry.item_type = ocsEntry.type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${davRemoteURL}${davRootPath}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: davRootPath,\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n};\nconst getShares = function (shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n};\nconst getSharedWithYou = function () {\n return getShares(true);\n};\nconst getSharedWithOthers = function () {\n return getShares();\n};\nconst getRemoteShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getPendingShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getRemotePendingShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getDeletedShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\n/**\n * Check if a file request is enabled\n * @param attributes the share attributes json-encoded array\n */\nexport const isFileRequest = (attributes = '[]') => {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n};\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nconst groupBy = function (nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n};\nexport const getContents = async (sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) => {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map(node => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${davRemoteURL}${davRootPath}`,\n owner: getCurrentUser()?.uid || null,\n }),\n contents,\n };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<slot name=\"avatar\" />\n\t\t<div class=\"sharing-entry__desc\">\n\t\t\t<span class=\"sharing-entry__title\">{{ title }}</span>\n\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t</div>\n\t\t<NcActions v-if=\"$slots['default']\"\n\t\t\tref=\"actionsComponent\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:aria-expanded=\"ariaExpandedValue\">\n\t\t\t<slot />\n\t\t</NcActions>\n\t</li>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/components/NcActions'\n\nexport default {\n\tname: 'SharingEntrySimple',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tariaExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tariaExpandedValue() {\n\t\t\tif (this.ariaExpanded === null) {\n\t\t\t\treturn this.ariaExpanded\n\t\t\t}\n\t\t\treturn this.ariaExpanded ? 'true' : 'false'\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\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!./SharingEntrySimple.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!./SharingEntrySimple.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!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=44339fa4&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&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 \"44339fa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],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!./SharingEntryInternal.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!./SharingEntryInternal.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<SharingEntrySimple ref=\"shareEntrySimple\"\n\t\t\tclass=\"sharing-entry__internal\"\n\t\t\t:title=\"t('files_sharing', 'Internal link')\"\n\t\t\t:subtitle=\"internalLinkSubtitle\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-external icon-external-white\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton :title=\"copyLinkTooltip\"\n\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t@click=\"copyLink\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</SharingEntrySimple>\n\t</ul>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showSuccess } from '@nextcloud/dialogs'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\n\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\n\nimport SharingEntrySimple from './SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInternal',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntrySimple,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Get the internal link to this file id\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinternalLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy internal link to clipboard')\n\t\t},\n\n\t\tinternalLinkSubtitle() {\n\t\t\tif (this.fileInfo.type === 'dir') {\n\t\t\t\treturn t('files_sharing', 'Only works for people with access to this folder')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Only works for people with access to this file')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.internalLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\tthis.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\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!./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=57874406&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&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 \"57874406\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal ? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nimport { emit } from '@nextcloud/event-bus'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while creating share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tshowError(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while deleting share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while updating share', error)\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nexport const BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share = {}\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.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!./SharingInput.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharing-search\">\n\t\t<label class=\"hidden-visually\" :for=\"shareInputId\">\n\t\t\t{{ isExternal ? t('files_sharing', 'Enter external recipients')\n\t\t\t\t: t('files_sharing', 'Search for internal recipients') }}\n\t\t</label>\n\t\t<NcSelect ref=\"select\"\n\t\t\tv-model=\"value\"\n\t\t\t:input-id=\"shareInputId\"\n\t\t\tclass=\"sharing-search__input\"\n\t\t\t:disabled=\"!canReshare\"\n\t\t\t:loading=\"loading\"\n\t\t\t:filterable=\"false\"\n\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:user-select=\"true\"\n\t\t\t:options=\"options\"\n\t\t\t:label-outside=\"true\"\n\t\t\t@search=\"asyncFind\"\n\t\t\t@option:selected=\"onSelected\">\n\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t{{ search ? noResultText : placeholder }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t</div>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingInput',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmixins: [ShareRequests, ShareDetails],\n\n\tprops: {\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tlinkShares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\treshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisExternal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tshareInputId: `share-input-${Math.random().toString(36).slice(2, 7)}`,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tloading: false,\n\t\t\tquery: '',\n\t\t\trecommendations: [],\n\t\t\tShareSearch: OCA.Sharing.ShareSearch.state,\n\t\t\tsuggestions: [],\n\t\t\tvalue: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Implement ShareSearch\n\t\t * allows external appas to inject new\n\t\t * results into the autocomplete dropdown\n\t\t * Used for the guests app\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalResults() {\n\t\t\treturn this.ShareSearch.results\n\t\t},\n\t\tinputPlaceholder() {\n\t\t\tconst allowRemoteSharing = this.config.isRemoteShareAllowed\n\n\t\t\tif (!this.canReshare) {\n\t\t\t\treturn t('files_sharing', 'Resharing is not allowed')\n\t\t\t}\n\t\t\tif (this.placeholder) {\n\t\t\t\treturn this.placeholder\n\t\t\t}\n\n\t\t\t// We can always search with email addresses for users too\n\t\t\tif (!allowRemoteSharing) {\n\t\t\t\treturn t('files_sharing', 'Name or email …')\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Name, email, or Federated Cloud ID …')\n\t\t},\n\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.isValidQuery) {\n\t\t\t\treturn this.suggestions\n\t\t\t}\n\t\t\treturn this.recommendations\n\t\t},\n\n\t\tnoResultText() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('files_sharing', 'Searching …')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'No elements found.')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.isExternal) {\n\t\t\t// We can only recommend users, groups etc for internal shares\n\t\t\tthis.getRecommendations()\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonSelected(option) {\n\t\t\tthis.value = null // Reset selected option\n\t\t\tthis.openSharingDetails(option)\n\t\t},\n\n\t\tasync asyncFind(query) {\n\t\t\t// save current query to check if we display\n\t\t\t// recommendations or search results\n\t\t\tthis.query = query.trim()\n\t\t\tif (this.isValidQuery) {\n\t\t\t\t// start loading now to have proper ux feedback\n\t\t\t\t// during the debounce\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.debounceGetSuggestions(query)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get suggestions\n\t\t *\n\t\t * @param {string} search the search query\n\t\t * @param {boolean} [lookup] search on lookup server\n\t\t */\n\t\tasync getSuggestions(search, lookup = false) {\n\t\t\tthis.loading = true\n\n\t\t\tif (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n\t\t\t\tlookup = true\n\t\t\t}\n\n\t\t\tlet shareType = []\n\n\t\t\tconst remoteTypes = [ShareType.Remote, ShareType.RemoteGroup]\n\n\t\t\tif (this.isExternal && !this.config.showFederatedSharesAsInternal) {\n\t\t\t\tshareType.push(...remoteTypes)\n\t\t\t} else {\n\t\t\t\tshareType = shareType.concat([\n\t\t\t\t\tShareType.User,\n\t\t\t\t\tShareType.Group,\n\t\t\t\t\tShareType.Team,\n\t\t\t\t\tShareType.Room,\n\t\t\t\t\tShareType.Guest,\n\t\t\t\t\tShareType.Deck,\n\t\t\t\t\tShareType.ScienceMesh,\n\t\t\t\t])\n\n\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\tshareType.push(...remoteTypes)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (getCapabilities().files_sharing.public.enabled === true && this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Email)\n\t\t\t}\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\tlookup,\n\t\t\t\t\t\tperPage: this.config.maxAutocompleteResults,\n\t\t\t\t\t\tshareType,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching suggestions', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst data = request.data.ocs.data\n\t\t\tconst exact = request.data.ocs.data.exact\n\t\t\tdata.exact = [] // removing exact from general results\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\t\t\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tconst exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\t\t\tconst suggestions = this.filterOutExistingShares(rawSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\t\t\t// lookup clickable entry\n\t\t\t// show if enabled and not already requested\n\t\t\tconst lookupEntry = []\n\t\t\tif (data.lookupEnabled && !lookup) {\n\t\t\t\tlookupEntry.push({\n\t\t\t\t\tid: 'global-lookup',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tdisplayName: t('files_sharing', 'Search globally'),\n\t\t\t\t\tlookup: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// if there is a condition specified, filter it\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\tconst allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)\n\n\t\t\t// Count occurrences of display names in order to provide a distinguishable description if needed\n\t\t\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\t\t\tif (!result.displayName) {\n\t\t\t\t\treturn nameCounts\n\t\t\t\t}\n\t\t\t\tif (!nameCounts[result.displayName]) {\n\t\t\t\t\tnameCounts[result.displayName] = 0\n\t\t\t\t}\n\t\t\t\tnameCounts[result.displayName]++\n\t\t\t\treturn nameCounts\n\t\t\t}, {})\n\n\t\t\tthis.suggestions = allSuggestions.map(item => {\n\t\t\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\t\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t\t\t}\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('suggestions', this.suggestions)\n\t\t},\n\n\t\t/**\n\t\t * Debounce getSuggestions\n\t\t *\n\t\t * @param {...*} args the arguments\n\t\t */\n\t\tdebounceGetSuggestions: debounce(function(...args) {\n\t\t\tthis.getSuggestions(...args)\n\t\t}, 300),\n\n\t\t/**\n\t\t * Get the sharing recommendations\n\t\t */\n\t\tasync getRecommendations() {\n\t\t\tthis.loading = true\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching recommendations', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Add external results from the OCA.Sharing.ShareSearch api\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawRecommendations = Object.values(request.data.ocs.data.exact)\n\t\t\t\t.reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tthis.recommendations = this.filterOutExistingShares(rawRecommendations)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t.concat(externalResults)\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('recommendations', this.recommendations)\n\t\t},\n\n\t\t/**\n\t\t * Filter out existing shares from\n\t\t * the provided shares search results\n\t\t *\n\t\t * @param {object[]} shares the array of shares object\n\t\t * @return {object[]}\n\t\t */\n\t\tfilterOutExistingShares(shares) {\n\t\t\treturn shares.reduce((arr, share) => {\n\t\t\t\t// only check proper objects\n\t\t\t\tif (typeof share !== 'object') {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (share.value.shareType === ShareType.User) {\n\t\t\t\t\t\t// filter out current user\n\t\t\t\t\t\tif (share.value.shareWith === getCurrentUser().uid) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// filter out the owner of the share\n\t\t\t\t\t\tif (this.reshare && share.value.shareWith === this.reshare.owner) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// filter out existing mail shares\n\t\t\t\t\tif (share.value.shareType === ShareType.Email) {\n\t\t\t\t\t\tconst emails = this.linkShares.map(elem => elem.shareWith)\n\t\t\t\t\t\tif (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // filter out existing shares\n\t\t\t\t\t\t// creating an object of uid => type\n\t\t\t\t\t\tconst sharesObj = this.shares.reduce((obj, elem) => {\n\t\t\t\t\t\t\tobj[elem.shareWith] = elem.type\n\t\t\t\t\t\t\treturn obj\n\t\t\t\t\t\t}, {})\n\n\t\t\t\t\t\t// if shareWith is the same and the share type too, ignore it\n\t\t\t\t\t\tconst key = share.value.shareWith.trim()\n\t\t\t\t\t\tif (key in sharesObj\n\t\t\t\t\t\t\t&& sharesObj[key] === share.value.shareType) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ALL GOOD\n\t\t\t\t\t// let's add the suggestion\n\t\t\t\t\tarr.push(share)\n\t\t\t\t} catch {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\treturn arr\n\t\t\t}, [])\n\t\t},\n\n\t\t/**\n\t\t * Get the icon based on the share type\n\t\t *\n\t\t * @param {number} type the share type\n\t\t * @return {string} the icon class\n\t\t */\n\t\tshareTypeToIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Guest:\n\t\t\t\t// default is a user, other icons are here to differentiate\n\t\t\t\t// themselves from it, so let's not display the user icon\n\t\t\t\t// case ShareType.Remote:\n\t\t\t\t// case ShareType.User:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Guest'),\n\t\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-group',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Group'),\n\t\t\t\t}\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Email'),\n\t\t\t\t}\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-teams',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Team'),\n\t\t\t\t}\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-room',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Talk conversation'),\n\t\t\t\t}\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-deck',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Deck board'),\n\t\t\t\t}\n\t\t\tcase ShareType.Sciencemesh:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-sciencemesh',\n\t\t\t\t\ticonTitle: t('files_sharing', 'ScienceMesh'),\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Format shares for the multiselect options\n\t\t *\n\t\t * @param {object} result select entry item\n\t\t * @return {object}\n\t\t */\n\t\tformatForMultiselect(result) {\n\t\t\tlet subname\n\t\t\tif (result.value.shareType === ShareType.User && this.config.shouldAlwaysShowUnique) {\n\t\t\t\tsubname = result.shareWithDisplayNameUnique ?? ''\n\t\t\t} else if ((result.value.shareType === ShareType.Remote\n\t\t\t\t\t|| result.value.shareType === ShareType.RemoteGroup\n\t\t\t) && result.value.server) {\n\t\t\t\tsubname = t('files_sharing', 'on {server}', { server: result.value.server })\n\t\t\t} else if (result.value.shareType === ShareType.Email) {\n\t\t\t\tsubname = result.value.shareWith\n\t\t\t} else {\n\t\t\t\tsubname = result.shareWithDescription ?? ''\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tshareWith: result.value.shareWith,\n\t\t\t\tshareType: result.value.shareType,\n\t\t\t\tuser: result.uuid || result.value.shareWith,\n\t\t\t\tisNoUser: result.value.shareType !== ShareType.User,\n\t\t\t\tdisplayName: result.name || result.label,\n\t\t\t\tsubname,\n\t\t\t\tshareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n\t\t\t\t...this.shareTypeToIcon(result.value.shareType),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for=\"sharing-search-input\"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\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!./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=060f147f\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shares.length)?_c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}],null,false,1184892072)},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport Config from '../services/ConfigService.ts';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param {boolean} verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n console.info('Error generating password from password_policy', error);\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n self.crypto.getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (path) => {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport { emit } from '@nextcloud/event-bus'\n\nimport PQueue from 'p-queue'\nimport debounce from 'debounce'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesRequests from './ShareRequests.js'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\treturn !bundledPermissions.includes(this.share.permissions)\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.share.password = await GeneratePassword(true)\n\t\t\t\t\tthis.$set(this.share, 'newPassword', this.share.password)\n\t\t\t\t} else {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tconsole.debug('Share deleted', this.share.id)\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch (error) {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array<string>} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tpropertyNames.forEach(name => {\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.indexOf('password') >= 0) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tthis.$delete(this.errors, propertyNames[0])\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tthis.onSyncError(propertyNames[0], message)\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tconsole.debug('Updated local share', this.share)\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\tcase 'expireDate':\n\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\tcase 'hideDownload':\n\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\tcase 'label':\n\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\tcase 'note':\n\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\tcase 'password':\n\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\tcase 'permissions':\n\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\tdefault:\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\tcase 'password':\n\t\t\tcase 'pending':\n\t\t\tcase 'expireDate':\n\t\t\tcase 'label':\n\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\tif (propertyEl) {\n\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t}\n\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t// Restore previous state\n\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.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!./SharingEntryInherited.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<SharingEntrySimple :key=\"share.id\"\n\t\tclass=\"sharing-entry__inherited\"\n\t\t:title=\"share.shareWithDisplayName\">\n\t\t<template #avatar>\n\t\t\t<NcAvatar :user=\"share.shareWith\"\n\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t</template>\n\t\t<NcActionText icon=\"icon-user\">\n\t\t\t{{ t('files_sharing', 'Added by {initiator}', { initiator: share.ownerDisplayName }) }}\n\t\t</NcActionText>\n\t\t<NcActionLink v-if=\"share.viaPath && share.viaFileid\"\n\t\t\ticon=\"icon-folder\"\n\t\t\t:href=\"viaFileTargetUrl\">\n\t\t\t{{ t('files_sharing', 'Via “{folder}”', {folder: viaFolderName} ) }}\n\t\t</NcActionLink>\n\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\ticon=\"icon-close\"\n\t\t\t@click.prevent=\"onDelete\">\n\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t</NcActionButton>\n\t</SharingEntrySimple>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { basename } from '@nextcloud/paths'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcAvatar,\n\t\tSharingEntrySimple,\n\t},\n\n\tmixins: [SharesMixin],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tviaFileTargetUrl() {\n\t\t\treturn generateUrl('/f/{fileid}', {\n\t\t\t\tfileid: this.share.viaFileid,\n\t\t\t})\n\t\t},\n\n\t\tviaFolderName() {\n\t\t\treturn basename(this.share.viaPath)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\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!./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=fe8ed59e&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&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 \"fe8ed59e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', {folder: _vm.viaFolderName} ))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],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!./SharingInherited.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!./SharingInherited.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"shares.length\" id=\"sharing-inherited-shares\">\n\t\t<!-- Main collapsible entry -->\n\t\t<SharingEntrySimple class=\"sharing-entry__inherited\"\n\t\t\t:title=\"mainTitle\"\n\t\t\t:subtitle=\"subTitle\"\n\t\t\t:aria-expanded=\"showInheritedShares\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-shared icon-more-white\" />\n\t\t\t</template>\n\t\t\t<NcActionButton :icon=\"showInheritedSharesIcon\"\n\t\t\t\t:aria-label=\"toggleTooltip\"\n\t\t\t\t:title=\"toggleTooltip\"\n\t\t\t\t@click.prevent.stop=\"toggleInheritedShares\" />\n\t\t</SharingEntrySimple>\n\n\t\t<!-- Inherited shares list -->\n\t\t<SharingEntryInherited v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</ul>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntryInherited,\n\t\tSharingEntrySimple,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tshowInheritedShares: false,\n\t\t\tshares: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowInheritedSharesIcon() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\treturn 'icon-triangle-n'\n\t\t\t}\n\t\t\treturn 'icon-triangle-s'\n\t\t},\n\t\tmainTitle() {\n\t\t\treturn t('files_sharing', 'Others with access')\n\t\t},\n\t\tsubTitle() {\n\t\t\treturn (this.showInheritedShares && this.shares.length === 0)\n\t\t\t\t? t('files_sharing', 'No other accounts with access found')\n\t\t\t\t: ''\n\t\t},\n\t\ttoggleTooltip() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t\t\t? t('files_sharing', 'Toggle list of others with access to this directory')\n\t\t\t\t: t('files_sharing', 'Toggle list of others with access to this file')\n\t\t},\n\t\tfullPath() {\n\t\t\tconst path = `${this.fileInfo.path}/${this.fileInfo.name}`\n\t\t\treturn path.replace('//', '/')\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo() {\n\t\t\tthis.resetState()\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Toggle the list view and fetch/reset the state\n\t\t */\n\t\ttoggleInheritedShares() {\n\t\t\tthis.showInheritedShares = !this.showInheritedShares\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\tthis.fetchInheritedShares()\n\t\t\t} else {\n\t\t\t\tthis.resetState()\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Fetch the Inherited Shares array\n\t\t */\n\t\tasync fetchInheritedShares() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { path: this.fullPath })\n\t\t\t\tconst shares = await axios.get(url)\n\t\t\t\tthis.shares = shares.data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\t\t\t\tconsole.info(this.shares)\n\t\t\t\tthis.loaded = true\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { type: 'error' })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Reset current component state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loaded = false\n\t\t\tthis.loading = false\n\t\t\tthis.showInheritedShares = false\n\t\t\tthis.shares = []\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\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!./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=a6cc72e6&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&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 \"a6cc72e6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e(),_vm._v(\" \"),(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tune-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TuneIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarBlankIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./CalendarBlank.vue?vue&type=template&id=41fe7db9\"\nimport script from \"./CalendarBlank.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlank.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon qrcode-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"QrcodeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon exclamation-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ExclamationIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon lock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon check-bold-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckBoldIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon triangle-small-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8 9H16L12 16\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TriangleSmallDownIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=caa55e94\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-upload-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcActions ref=\"quickShareActions\"\n\t\tclass=\"share-select\"\n\t\t:menu-name=\"selectedOption\"\n\t\t:aria-label=\"ariaLabel\"\n\t\ttype=\"tertiary-no-background\"\n\t\t:disabled=\"!share.canEdit\"\n\t\tforce-name>\n\t\t<template #icon>\n\t\t\t<DropdownIcon :size=\"15\" />\n\t\t</template>\n\t\t<NcActionButton v-for=\"option in options\"\n\t\t\t:key=\"option.label\"\n\t\t\ttype=\"radio\"\n\t\t\t:model-value=\"option.label === selectedOption\"\n\t\t\tclose-after-click\n\t\t\t@click=\"selectOption(option.label)\">\n\t\t\t<template #icon>\n\t\t\t\t<component :is=\"option.icon\" />\n\t\t\t</template>\n\t\t\t{{ option.label }}\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue'\nimport IconPencil from 'vue-material-design-icons/Pencil.vue'\nimport IconFileUpload from 'vue-material-design-icons/FileUpload.vue'\nimport IconTune from 'vue-material-design-icons/Tune.vue'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n\tATOMIC_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingEntryQuickShareSelect',\n\n\tcomponents: {\n\t\tDropdownIcon,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['open-sharing-details'],\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('files_sharing', 'Quick share options, the current selected is \"{selectedOption}\"', { selectedOption: this.selectedOption })\n\t\t},\n\t\tcanViewText() {\n\t\t\treturn t('files_sharing', 'View only')\n\t\t},\n\t\tcanEditText() {\n\t\t\treturn t('files_sharing', 'Can edit')\n\t\t},\n\t\tfileDropText() {\n\t\t\treturn t('files_sharing', 'File request')\n\t\t},\n\t\tcustomPermissionsText() {\n\t\t\treturn t('files_sharing', 'Custom permissions')\n\t\t},\n\t\tpreSelectedOption() {\n\t\t\t// We remove the share permission for the comparison as it is not relevant for bundled permissions.\n\t\t\tif ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n\t\t\t\treturn this.canViewText\n\t\t\t} else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n\t\t\t\treturn this.canEditText\n\t\t\t} else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n\t\t\t\treturn this.fileDropText\n\t\t\t}\n\n\t\t\treturn this.customPermissionsText\n\n\t\t},\n\t\toptions() {\n\t\t\tconst options = [{\n\t\t\t\tlabel: this.canViewText,\n\t\t\t\ticon: IconEyeOutline,\n\t\t\t}, {\n\t\t\t\tlabel: this.canEditText,\n\t\t\t\ticon: IconPencil,\n\t\t\t}]\n\t\t\tif (this.supportsFileDrop) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: this.fileDropText,\n\t\t\t\t\ticon: IconFileUpload,\n\t\t\t\t})\n\t\t\t}\n\t\t\toptions.push({\n\t\t\t\tlabel: this.customPermissionsText,\n\t\t\t\ticon: IconTune,\n\t\t\t})\n\n\t\t\treturn options\n\t\t},\n\t\tsupportsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tconst shareType = this.share.type ?? this.share.shareType\n\t\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tdropDownPermissionValue() {\n\t\t\tswitch (this.selectedOption) {\n\t\t\tcase this.canEditText:\n\t\t\t\treturn this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\tcase this.fileDropText:\n\t\t\t\treturn BUNDLED_PERMISSIONS.FILE_DROP\n\t\t\tcase this.customPermissionsText:\n\t\t\t\treturn 'custom'\n\t\t\tcase this.canViewText:\n\t\t\tdefault:\n\t\t\t\treturn BUNDLED_PERMISSIONS.READ_ONLY\n\t\t\t}\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.selectedOption = this.preSelectedOption\n\t},\n\tmounted() {\n\t\tsubscribe('update:share', (share) => {\n\t\t\tif (share.id === this.share.id) {\n\t\t\t\tthis.share.permissions = share.permissions\n\t\t\t\tthis.selectedOption = this.preSelectedOption\n\t\t\t}\n\t\t})\n\t},\n\tunmounted() {\n\t\tunsubscribe('update:share')\n\t},\n\tmethods: {\n\t\tselectOption(optionLabel) {\n\t\t\tthis.selectedOption = optionLabel\n\t\t\tif (optionLabel === this.customPermissionsText) {\n\t\t\t\tthis.$emit('open-sharing-details')\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = this.dropDownPermissionValue\n\t\t\t\tthis.queueUpdate('permissions')\n\t\t\t\t// TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick\n\t\t\t\tthis.$refs.quickShareActions.$refs.menuButton.$el.focus()\n\t\t\t}\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\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!./SharingEntryQuickShareSelect.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!./SharingEntryQuickShareSelect.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!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=2aa230f1&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&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 \"2aa230f1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"type\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: ') + new Date(_vm.expiryTime).toLocaleString()},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon clock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ClockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Clock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Clock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Clock.vue?vue&type=template&id=539578bc\"\nimport script from \"./Clock.vue?vue&type=script&lang=js\"\nexport * from \"./Clock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.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!./ShareExpiryTime.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"share-expiry-time\">\n\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t<template #trigger>\n\t\t\t\t<NcButton v-if=\"expiryTime\"\n\t\t\t\t\tclass=\"hint-icon\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:aria-label=\"t('files_sharing', 'Share expiration: ') + new Date(expiryTime).toLocaleString()\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ClockIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</template>\n\t\t\t<h3 class=\"hint-heading\">\n\t\t\t\t{{ t('files_sharing', 'Share Expiration') }}\n\t\t\t</h3>\n\t\t\t<p v-if=\"expiryTime\" class=\"hint-body\">\n\t\t\t\t<NcDateTime :timestamp=\"expiryTime\"\n\t\t\t\t\t:format=\"timeFormat\"\n\t\t\t\t\t:relative-time=\"false\" /> (<NcDateTime :timestamp=\"expiryTime\" />)\n\t\t\t</p>\n\t\t</NcPopover>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\nimport NcDateTime from '@nextcloud/vue/components/NcDateTime'\nimport ClockIcon from 'vue-material-design-icons/Clock.vue'\n\nexport default {\n\tname: 'ShareExpiryTime',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcPopover,\n\t\tNcDateTime,\n\t\tClockIcon,\n\t},\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\texpiryTime() {\n\t\t\treturn this.share?.expireDate ? new Date(this.share.expireDate).getTime() : null\n\t\t},\n\t\ttimeFormat() {\n\t\t\treturn { dateStyle: 'full', timeStyle: 'short' }\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\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!./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=66d8c844&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66d8c844\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.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!./ExternalShareAction.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Component :is=\"data.is\"\n\t\tv-bind=\"data\"\n\t\tv-on=\"action.handlers\">\n\t\t{{ data.text }}\n\t</Component>\n</template>\n\n<script>\nimport Share from '../models/Share.ts'\n\nexport default {\n\tname: 'ExternalShareAction',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdata() {\n\t\t\treturn this.action.data(this)\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=2812a40a\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.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(_vm.data.is,_vm._g(_vm._b({tag:\"Component\"},'Component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li :class=\"{ 'sharing-entry--share': share }\"\n\t\tclass=\"sharing-entry sharing-entry__link\">\n\t\t<NcAvatar :is-no-user=\"true\"\n\t\t\t:icon-class=\"isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'\"\n\t\t\tclass=\"sharing-entry__avatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<div class=\"sharing-entry__desc\">\n\t\t\t\t<span class=\"sharing-entry__title\" :title=\"title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</span>\n\t\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t\t{{ subtitle }}\n\t\t\t\t</p>\n\t\t\t\t<SharingEntryQuickShareSelect v-if=\"share && share.permissions !== undefined\"\n\t\t\t\t\t:share=\"share\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"sharing-entry__actions\">\n\t\t\t\t<ShareExpiryTime v-if=\"share && share.expireDate\" :share=\"share\" />\n\n\t\t\t\t<!-- clipboard -->\n\t\t\t\t<div>\n\t\t\t\t\t<NcActions v-if=\"share && (!isEmailShareType || isFileRequest) && share.token\" ref=\"copyButton\" class=\"sharing-entry__copy\">\n\t\t\t\t\t\t<NcActionButton :aria-label=\"copyLinkTooltip\"\n\t\t\t\t\t\t\t:title=\"copyLinkTooltip\"\n\t\t\t\t\t\t\t:href=\"shareLink\"\n\t\t\t\t\t\t\t@click.prevent=\"copyLink\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t</NcActions>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- pending actions -->\n\t\t<NcActions v-if=\"!pending && pendingDataIsMissing\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onCancel\">\n\t\t\t<!-- pending data menu -->\n\t\t\t<NcActionText v-if=\"errors.pending\"\n\t\t\t\tclass=\"error\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ErrorIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ errors.pending }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionText v-else icon=\"icon-info\">\n\t\t\t\t{{ t('files_sharing', 'Please enter the following required information before creating the share') }}\n\t\t\t</NcActionText>\n\n\t\t\t<!-- password -->\n\t\t\t<NcActionCheckbox v-if=\"pendingPassword\"\n\t\t\t\t:checked.sync=\"isPasswordProtected\"\n\t\t\t\t:disabled=\"config.enforcePasswordForPublicLink || saving\"\n\t\t\t\tclass=\"share-link-password-checkbox\"\n\t\t\t\t@uncheck=\"onPasswordDisable\">\n\t\t\t\t{{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<NcActionInput v-if=\"pendingEnforcedPassword || share.password\"\n\t\t\t\tclass=\"share-link-password\"\n\t\t\t\t:label=\"t('files_sharing', 'Enter a password')\"\n\t\t\t\t:value.sync=\"share.password\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:required=\"config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink\"\n\t\t\t\t:minlength=\"isPasswordPolicyEnabled && config.passwordPolicy.minLength\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t@submit=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<LockIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionCheckbox v-if=\"pendingDefaultExpirationDate\"\n\t\t\t\t:checked.sync=\"defaultExpirationDateEnabled\"\n\t\t\t\t:disabled=\"pendingEnforcedExpirationDate || saving\"\n\t\t\t\tclass=\"share-link-expiration-date-checkbox\"\n\t\t\t\t@update:model-value=\"onExpirationDateToggleUpdate\">\n\t\t\t\t{{ config.isDefaultExpireDateEnforced ? t('files_sharing', 'Enable link expiration (enforced)') : t('files_sharing', 'Enable link expiration') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<!-- expiration date -->\n\t\t\t<NcActionInput v-if=\"(pendingDefaultExpirationDate || pendingEnforcedExpirationDate) && defaultExpirationDateEnabled\"\n\t\t\t\tdata-cy-files-sharing-expiration-date-input\n\t\t\t\tclass=\"share-link-expire-date\"\n\t\t\t\t:label=\"pendingEnforcedExpirationDate ? t('files_sharing', 'Enter expiration date (enforced)') : t('files_sharing', 'Enter expiration date')\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:is-native-picker=\"true\"\n\t\t\t\t:hide-label=\"true\"\n\t\t\t\t:value=\"new Date(share.expireDate)\"\n\t\t\t\ttype=\"date\"\n\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t@update:model-value=\"onExpirationChange\"\n\t\t\t\t@change=\"expirationDateChanged\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconCalendarBlank :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionButton @click.prevent.stop=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Create share') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton @click.prevent.stop=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<!-- actions -->\n\t\t<NcActions v-else-if=\"!loading\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onMenuClose\">\n\t\t\t<template v-if=\"share\">\n\t\t\t\t<template v-if=\"share.canEdit && canReshare\">\n\t\t\t\t\t<NcActionButton :disabled=\"saving\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent=\"openSharingDetails\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Tune :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_sharing', 'Customize link') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\n\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t@click.prevent=\"showQRCode = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconQr :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Generate QR code') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionSeparator />\n\n\t\t\t\t<!-- external actions -->\n\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:share=\"share\" />\n\n\t\t\t\t<!-- external legacy sharing via url (social...) -->\n\t\t\t\t<NcActionLink v-for=\"({ icon, url, name }, actionIndex) in externalLegacyLinkActions\"\n\t\t\t\t\t:key=\"actionIndex\"\n\t\t\t\t\t:href=\"url(shareLink)\"\n\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\ttarget=\"_blank\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</NcActionLink>\n\n\t\t\t\t<NcActionButton v-if=\"!isEmailShareType && canReshare\"\n\t\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t\t@click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<PlusIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Add another link') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\t\t\t:disabled=\"saving\"\n\t\t\t\t\t@click.prevent=\"onDelete\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\n\t\t\t<!-- Create new share -->\n\t\t\t<NcActionButton v-else-if=\"canReshare\"\n\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t:title=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:aria-label=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:icon=\"loading ? 'icon-loading-small' : 'icon-add'\"\n\t\t\t\t@click.prevent.stop=\"onNewLinkShare\" />\n\t\t</NcActions>\n\n\t\t<!-- loading indicator to replace the menu -->\n\t\t<div v-else class=\"icon-loading-small sharing-entry__loading\" />\n\n\t\t<!-- Modal to open whenever we have a QR code -->\n\t\t<NcDialog v-if=\"showQRCode\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showQRCode\"\n\t\t\t:name=\"title\"\n\t\t\t:close-on-click-outside=\"true\"\n\t\t\t@close=\"showQRCode = false\">\n\t\t\t<div class=\"qr-code-dialog\">\n\t\t\t\t<VueQrcode tag=\"img\"\n\t\t\t\t\t:value=\"shareLink\"\n\t\t\t\t\tclass=\"qr-code-dialog__img\" />\n\t\t\t</div>\n\t\t</NcDialog>\n\t</li>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { generateUrl, getBaseUrl } from '@nextcloud/router'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport moment from '@nextcloud/moment'\n\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'\nimport NcActionInput from '@nextcloud/vue/components/NcActionInput'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\nimport NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\n\nimport Tune from 'vue-material-design-icons/Tune.vue'\nimport IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue'\nimport IconQr from 'vue-material-design-icons/Qrcode.vue'\nimport ErrorIcon from 'vue-material-design-icons/Exclamation.vue'\nimport LockIcon from 'vue-material-design-icons/Lock.vue'\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport PlusIcon from 'vue-material-design-icons/Plus.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\nimport ShareExpiryTime from './ShareExpiryTime.vue'\n\nimport ExternalShareAction from './ExternalShareAction.vue'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default {\n\tname: 'SharingEntryLink',\n\n\tcomponents: {\n\t\tExternalShareAction,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionCheckbox,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcActionSeparator,\n\t\tNcAvatar,\n\t\tNcDialog,\n\t\tVueQrcode,\n\t\tTune,\n\t\tIconCalendarBlank,\n\t\tIconQr,\n\t\tErrorIcon,\n\t\tLockIcon,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t\tCloseIcon,\n\t\tPlusIcon,\n\t\tSharingEntryQuickShareSelect,\n\t\tShareExpiryTime,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshareCreationComplete: false,\n\t\t\tcopySuccess: true,\n\t\t\tcopied: false,\n\t\t\tdefaultExpirationDateEnabled: false,\n\n\t\t\t// Are we waiting for password/expiration date\n\t\t\tpending: false,\n\n\t\t\tExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t\tlogger: getLoggerBuilder()\n\t\t\t\t.setApp('files_sharing')\n\t\t\t\t.detectUser()\n\t\t\t\t.build(),\n\n\t\t\t// tracks whether modal should be opened or not\n\t\t\tshowQRCode: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Link share label\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttitle() {\n\t\t\t// if we have a valid existing share (not pending)\n\t\t\tif (this.share && this.share.id) {\n\t\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', '{shareWith} by {initiator}', {\n\t\t\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Shared via link by {initiator}', {\n\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.share.label && this.share.label.trim() !== '') {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\tif (this.isFileRequest) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'File request ({label})', {\n\t\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn t('files_sharing', 'Mail share ({label})', {\n\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share link ({label})', {\n\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\tif (!this.share.shareWith || this.share.shareWith.trim() === '') {\n\t\t\t\t\t\treturn this.isFileRequest\n\t\t\t\t\t\t\t? t('files_sharing', 'File request')\n\t\t\t\t\t\t\t: t('files_sharing', 'Mail share')\n\t\t\t\t\t}\n\t\t\t\t\treturn this.share.shareWith\n\t\t\t\t}\n\n\t\t\t\tif (this.index === null) {\n\t\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.index >= 1) {\n\t\t\t\treturn t('files_sharing', 'Share link ({index})', { index: this.index })\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Create public link')\n\t\t},\n\n\t\t/**\n\t\t * Show the email on a second line if a label is set for mail shares\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\tif (this.isEmailShareType\n\t\t\t\t&& this.title !== this.share.shareWith) {\n\t\t\t\treturn this.share.shareWith\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (this.share.passwordExpirationTime === null) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Pending data.\n\t\t * If the share still doesn't have an id, it is not synced\n\t\t * Therefore this is still not valid and requires user input\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tpendingDataIsMissing() {\n\t\t\treturn this.pendingPassword || this.pendingEnforcedPassword || this.pendingDefaultExpirationDate || this.pendingEnforcedExpirationDate\n\t\t},\n\t\tpendingPassword() {\n\t\t\treturn this.config.enableLinkPasswordByDefault && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedPassword() {\n\t\t\treturn this.config.enforcePasswordForPublicLink && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedExpirationDate() {\n\t\t\treturn this.config.isDefaultExpireDateEnforced && this.isPendingShare\n\t\t},\n\t\tpendingDefaultExpirationDate() {\n\t\t\treturn (this.config.defaultExpirationDate instanceof Date || !isNaN(new Date(this.config.defaultExpirationDate).getTime())) && this.isPendingShare\n\t\t},\n\t\tisPendingShare() {\n\t\t\treturn !!(this.share && !this.share.id)\n\t\t},\n\t\tsharePolicyHasEnforcedProperties() {\n\t\t\treturn this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced\n\t\t},\n\n\t\tenforcedPropertiesMissing() {\n\t\t\t// Ensure share exist and the share policy has required properties\n\t\t\tif (!this.sharePolicyHasEnforcedProperties) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!this.share) {\n\t\t\t\t// if no share, we can't tell if properties are missing or not so we assume properties are missing\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// If share has ID, then this is an incoming link share created from the existing link share\n\t\t\t// Hence assume required properties\n\t\t\tif (this.share.id) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Check if either password or expiration date is missing and enforced\n\t\t\tconst isPasswordMissing = this.config.enforcePasswordForPublicLink && !this.share.password\n\t\t\tconst isExpireDateMissing = this.config.isDefaultExpireDateEnforced && !this.share.expireDate\n\n\t\t\treturn isPasswordMissing || isExpireDateMissing\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Return the public share link\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshareLink() {\n\t\t\treturn generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for actions button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactionsTooltip() {\n\t\t\treturn t('files_sharing', 'Actions for \"{title}\"', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for copy button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy public link of \"{title}\" to clipboard', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * External additionnai actions for the menu\n\t\t *\n\t\t * @deprecated use OCA.Sharing.ExternalShareActions\n\t\t * @return {Array}\n\t\t */\n\t\texternalLegacyLinkActions() {\n\t\t\treturn this.ExternalLegacyLinkActions.actions\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && !action.advanced\n\t\t\t// filter only the registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\n\t\tisPasswordPolicyEnabled() {\n\t\t\treturn typeof this.config.passwordPolicy === 'object'\n\t\t},\n\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.scope === 'permissions' && shareAttribute.key === 'download' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\n\t\tisFileRequest() {\n\t\t\treturn this.share.isFileRequest\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.defaultExpirationDateEnabled = this.config.defaultExpirationDate instanceof Date\n\t\tif (this.share && this.isNewShare) {\n\t\t\tthis.share.expireDate = this.defaultExpirationDateEnabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if the share requires review\n\t\t *\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t * @return {boolean}\n\t\t */\n\t\tshareRequiresReview(shareReviewComplete) {\n\t\t\t// If a user clicks 'Create share' it means they have reviewed the share\n\t\t\tif (shareReviewComplete) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.defaultExpirationDateEnabled || this.config.enableLinkPasswordByDefault\n\t\t},\n\t\t/**\n\t\t * Create a new share link and append it to the list\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t */\n\t\tasync onNewLinkShare(shareReviewComplete = false) {\n\t\t\tthis.logger.debug('onNewLinkShare called (with this.share)', this.share)\n\t\t\t// do not run again if already loading\n\t\t\tif (this.loading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst shareDefaults = {\n\t\t\t\tshare_type: ShareType.Link,\n\t\t\t}\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\t// default is empty string if not set\n\t\t\t\t// expiration is the share object key, not expireDate\n\t\t\t\tshareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)\n\t\t\t}\n\n\t\t\tthis.logger.debug('Missing required properties?', this.enforcedPropertiesMissing)\n\t\t\t// Do not push yet if we need a password or an expiration date: show pending menu\n\t\t\t// A share would require a review for example is default expiration date is set but not enforced, this allows\n\t\t\t// the user to review the share and remove the expiration date if they don't want it\n\t\t\tif ((this.sharePolicyHasEnforcedProperties && this.enforcedPropertiesMissing) || this.shareRequiresReview(shareReviewComplete === true)) {\n\t\t\t\tthis.pending = true\n\t\t\t\tthis.shareCreationComplete = false\n\n\t\t\t\tthis.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')\n\n\t\t\t\t// ELSE, show the pending popovermenu\n\t\t\t\t// if password default or enforced, pre-fill with random one\n\t\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\tshareDefaults.password = await GeneratePassword(true)\n\t\t\t\t}\n\n\t\t\t\t// create share & close menu\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t})\n\n\t\t\t\t// open the menu on the\n\t\t\t\t// freshly created share component\n\t\t\t\tthis.open = false\n\t\t\t\tthis.pending = false\n\t\t\t\tcomponent.open = true\n\n\t\t\t\t// Nothing is enforced, creating share directly\n\t\t\t} else {\n\n\t\t\t\t// if a share already exists, pushing it\n\t\t\t\tif (this.share && !this.share.id) {\n\t\t\t\t\t// if the share is valid, create it on the server\n\t\t\t\t\tif (this.checkShare(this.share)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.logger.info('Sending existing share to server', this.share)\n\t\t\t\t\t\t\tawait this.pushNewLinkShare(this.share, true)\n\t\t\t\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\t\t\t\tthis.logger.info('Share created on server', this.share)\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthis.pending = false\n\t\t\t\t\t\t\tthis.logger.error('Error creating share', e)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.open = true\n\t\t\t\t\t\tshowError(t('files_sharing', 'Error, please enter proper password and/or expiration date'))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tawait this.pushNewLinkShare(share)\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Push a new link share to the server\n\t\t * And update or append to the list\n\t\t * accordingly\n\t\t *\n\t\t * @param {Share} share the new share\n\t\t * @param {boolean} [update] do we update the current share ?\n\t\t */\n\t\tasync pushNewLinkShare(share, update) {\n\t\t\ttry {\n\t\t\t\t// do nothing if we're already pending creation\n\t\t\t\tif (this.loading) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.errors = {}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: ShareType.Link,\n\t\t\t\t\tpassword: share.password,\n\t\t\t\t\texpireDate: share.expireDate ?? '',\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t\t// we do not allow setting the publicUpload\n\t\t\t\t\t// before the share creation.\n\t\t\t\t\t// Todo: We also need to fix the createShare method in\n\t\t\t\t\t// lib/Controller/ShareAPIController.php to allow file requests\n\t\t\t\t\t// (currently not supported on create, only update)\n\t\t\t\t}\n\n\t\t\t\tconsole.debug('Creating link share with options', options)\n\t\t\t\tconst newShare = await this.createShare(options)\n\n\t\t\t\tthis.open = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\tconsole.debug('Link share created', newShare)\n\t\t\t\t// if share already exists, copy link directly on next tick\n\t\t\t\tlet component\n\t\t\t\tif (update) {\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('update:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// adding new share to the array and copying link to clipboard\n\t\t\t\t\t// using promise so that we can copy link in the same click function\n\t\t\t\t\t// and avoid firefox copy permissions issue\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\n\t\t\t\t// Execute the copy link method\n\t\t\t\t// freshly created share component\n\t\t\t\t// ! somehow does not works on firefox !\n\t\t\t\tif (!this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\t// Only copy the link when the password was not forced,\n\t\t\t\t\t// otherwise the user needs to copy/paste the password before finishing the share.\n\t\t\t\t\tcomponent.copyLink()\n\t\t\t\t}\n\t\t\t\tshowSuccess(t('files_sharing', 'Link share created'))\n\n\t\t\t} catch (data) {\n\t\t\t\tconst message = data?.response?.data?.ocs?.meta?.message\n\t\t\t\tif (!message) {\n\t\t\t\t\tshowError(t('files_sharing', 'Error while creating the share'))\n\t\t\t\t\tconsole.error(data)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (message.match(/password/i)) {\n\t\t\t\t\tthis.onSyncError('password', message)\n\t\t\t\t} else if (message.match(/date/i)) {\n\t\t\t\t\tthis.onSyncError('expireDate', message)\n\t\t\t\t} else {\n\t\t\t\t\tthis.onSyncError('pending', message)\n\t\t\t\t}\n\t\t\t\tthrow data\n\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.shareLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\t// focus and show the tooltip\n\t\t\t\tthis.$refs.copyButton.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\n\t\t/**\n\t\t * Uncheck password protection\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so we\n\t\t * cannot ensure data is up-to-date\n\t\t */\n\t\tonPasswordDisable() {\n\t\t\tthis.share.password = ''\n\n\t\t\t// reset password state after sync\n\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t// only update if valid share.\n\t\t\tif (this.share.id) {\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Menu have been closed or password has been submitted.\n\t\t * The only property that does not get\n\t\t * synced automatically is the password\n\t\t * So let's check if we have an unsaved\n\t\t * password.\n\t\t * expireDate is saved on datepicker pick\n\t\t * or close.\n\t\t */\n\t\tonPasswordSubmit() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onPasswordSubmit()\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\n\t\t/**\n\t\t * @param enabled True if expiration is enabled\n\t\t */\n\t\tonExpirationDateToggleUpdate(enabled) {\n\t\t\tthis.share.expireDate = enabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t},\n\n\t\texpirationDateChanged(event) {\n\t\t\tconst value = event?.target?.value\n\t\t\tconst isValid = !!value && !isNaN(new Date(value).getTime())\n\t\t\tthis.defaultExpirationDateEnabled = isValid\n\t\t},\n\n\t\t/**\n\t\t * Cancel the share creation\n\t\t * Used in the pending popover\n\t\t */\n\t\tonCancel() {\n\t\t\t// this.share already exists at this point,\n\t\t\t// but is incomplete as not pushed to server\n\t\t\t// YET. We can safely delete the share :)\n\t\t\tif (!this.shareCreationComplete) {\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\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!./SharingEntryLink.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!./SharingEntryLink.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!./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=4d06a90a&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&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 \"4d06a90a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.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!./SharingLinkList.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"canLinkShare\"\n\t\t:aria-label=\"t('files_sharing', 'Link shares')\"\n\t\tclass=\"sharing-link-list\">\n\t\t<!-- If no link shares, show the add link default entry -->\n\t\t<SharingEntryLink v-if=\"!hasLinkShares && canReshare\"\n\t\t\t:can-reshare=\"canReshare\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t@add:share=\"addShare\" />\n\n\t\t<!-- Else we display the list -->\n\t\t<template v-if=\"hasShares\">\n\t\t\t<!-- using shares[index] to work with .sync -->\n\t\t\t<SharingEntryLink v-for=\"(share, index) in shares\"\n\t\t\t\t:key=\"share.id\"\n\t\t\t\t:index=\"shares.length > 1 ? index + 1 : null\"\n\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t:share.sync=\"shares[index]\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@add:share=\"addShare(...arguments)\"\n\t\t\t\t@update:share=\"awaitForShare(...arguments)\"\n\t\t\t\t@remove:share=\"removeShare\"\n\t\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t\t</template>\n\t</ul>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport { t } from '@nextcloud/l10n'\n\nimport Share from '../models/Share.js'\nimport SharingEntryLink from '../components/SharingEntryLink.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingLinkList',\n\n\tcomponents: {\n\t\tSharingEntryLink,\n\t},\n\n\tmixins: [ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcanLinkShare: getCapabilities().files_sharing.public.enabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Do we have link shares?\n\t\t * Using this to still show the `new link share`\n\t\t * button regardless of mail shares\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\thasLinkShares() {\n\t\t\treturn this.shares.filter(share => share.type === ShareType.Link).length > 0\n\t\t},\n\n\t\t/**\n\t\t * Do we have any link or email shares?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasShares() {\n\t\t\treturn this.shares.length > 0\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Add a new share into the link shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} resolve a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve) {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.push(share)\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = this.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkTooltip,\"title\":_vm.copyLinkTooltip,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4269614823)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event},\"uncheck\":_vm.onPasswordDisable}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.share.password)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"value\":_vm.share.password,\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"password\", $event)},\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168)}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"checked\":_vm.defaultExpirationDateEnabled,\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:checked\":function($event){_vm.defaultExpirationDateEnabled=$event},\"update:model-value\":_vm.onExpirationDateToggleUpdate}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyLinkActions),function({ icon, url, name },actionIndex){return _c('NcActionLink',{key:actionIndex,attrs:{\"href\":url(_vm.shareLink),\"icon\":icon,\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('div',{staticClass:\"icon-loading-small sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=5f722665\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.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('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<NcAvatar class=\"sharing-entry__avatar\"\n\t\t\t:is-no-user=\"share.type !== ShareType.User\"\n\t\t\t:user=\"share.shareWith\"\n\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t:menu-position=\"'left'\"\n\t\t\t:url=\"share.shareWithAvatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<component :is=\"share.shareWithLink ? 'a' : 'div'\"\n\t\t\t\t:title=\"tooltip\"\n\t\t\t\t:aria-label=\"tooltip\"\n\t\t\t\t:href=\"share.shareWithLink\"\n\t\t\t\tclass=\"sharing-entry__summary__desc\">\n\t\t\t\t<span>{{ title }}\n\t\t\t\t\t<span v-if=\"!isUnique\" class=\"sharing-entry__summary__desc-unique\"> ({{\n\t\t\t\t\t\tshare.shareWithDisplayNameUnique }})</span>\n\t\t\t\t\t<small v-if=\"hasStatus && share.status.message\">({{ share.status.message }})</small>\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t\t<SharingEntryQuickShareSelect :share=\"share\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t</div>\n\t\t<ShareExpiryTime v-if=\"share && share.expireDate\" :share=\"share\" />\n\t\t<NcButton v-if=\"share.canEdit\"\n\t\t\tclass=\"sharing-entry__action\"\n\t\t\tdata-cy-files-sharing-share-actions\n\t\t\t:aria-label=\"t('files_sharing', 'Open Sharing Details')\"\n\t\t\ttype=\"tertiary\"\n\t\t\t@click=\"openSharingDetails(share)\">\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\n\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport ShareExpiryTime from './ShareExpiryTime.vue'\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntry',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcAvatar,\n\t\tDotsHorizontalIcon,\n\t\tNcSelect,\n\t\tShareExpiryTime,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = this.share.shareWithDisplayName\n\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === ShareType.Remote) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === ShareType.RemoteGroup) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === ShareType.Guest) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\ttitle += ' ' + t('files_sharing', 'by {initiator}', {\n\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn title\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.share.owner !== this.share.uidFileOwner) {\n\t\t\t\tconst data = {\n\t\t\t\t\t// todo: strong or italic?\n\t\t\t\t\t// but the t function escape any html from the data :/\n\t\t\t\t\tuser: this.share.shareWithDisplayName,\n\t\t\t\t\towner: this.share.ownerDisplayName,\n\t\t\t\t}\n\t\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the group {user} by {owner}', data)\n\t\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the conversation {user} by {owner}', data)\n\t\t\t\t}\n\n\t\t\t\treturn t('files_sharing', 'Shared with {user} by {owner}', data)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasStatus() {\n\t\t\tif (this.share.type !== ShareType.User) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (typeof this.share.status === 'object' && !Array.isArray(this.share.status))\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.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!./SharingEntry.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!./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=2dbd45b5&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&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 \"2dbd45b5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.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!./SharingList.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul class=\"sharing-sharee-list\" :aria-label=\"t('files_sharing', 'Shares')\">\n\t\t<SharingEntry v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t:is-unique=\"isUnique(share)\"\n\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t</ul>\n</template>\n\n<script>\nimport { t } from '@nextcloud/l10n'\nimport SharingEntry from '../components/SharingEntry.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingList',\n\n\tcomponents: {\n\t\tSharingEntry,\n\t},\n\n\tmixins: [ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tt,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasShares() {\n\t\t\treturn this.shares.length === 0\n\t\t},\n\t\tisUnique() {\n\t\t\treturn (share) => {\n\t\t\t\treturn [...this.shares].filter((item) => {\n\t\t\t\t\treturn share.type === ShareType.User && share.shareWithDisplayName === item.shareWithDisplayName\n\t\t\t\t}).length <= 1\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\" (\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"type\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=5b9a3a03\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.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:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"checked\":_vm.sharingPermission,\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}])},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"checked\":_vm.sharingPermission,\"value\":'custom',\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.expandCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"type\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label'),\"value\":_vm.share.label},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"label\", $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token'),\"value\":_vm.share.token},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"token\", $event)},\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821)}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.isPasswordEnforced},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"value\":_vm.hasUnsavedPassword ? _vm.share.newPassword : '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtectedByTalk},on:{\"update:checked\":[function($event){_vm.isPasswordProtectedByTalk=$event},_vm.onPasswordProtectedByTalkChange]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.hasExpirationDate,\"disabled\":_vm.isExpiryDateEnforced},on:{\"update:checked\":function($event){_vm.hasExpirationDate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload,\"checked\":_vm.share.hideDownload},on:{\"update:checked\":[function($event){return _vm.$set(_vm.share, \"hideDownload\", $event)},function($event){return _vm.queueUpdate('hideDownload')}]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"checked\":_vm.canDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},on:{\"update:checked\":function($event){_vm.canDownload=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.writeNoteToRecipientIsChecked},on:{\"update:checked\":function($event){_vm.writeNoteToRecipientIsChecked=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient'),\"value\":_vm.share.note},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"note\", $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.showInGridView},on:{\"update:checked\":function($event){_vm.showInGridView=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.setCustomPermissions},on:{\"update:checked\":function($event){_vm.setCustomPermissions=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"checked\":_vm.hasRead,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},on:{\"update:checked\":function($event){_vm.hasRead=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"checked\":_vm.canCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},on:{\"update:checked\":function($event){_vm.canCreate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"checked\":_vm.canEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},on:{\"update:checked\":function($event){_vm.canEdit=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"checked\":_vm.canReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},on:{\"update:checked\":function($event){_vm.canReshare=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"checked\":_vm.canDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},on:{\"update:checked\":function($event){_vm.canDelete=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"type\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":16}})]},proxy:true}],null,false,2746485232)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=c013567c\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon email-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EmailIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon share-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ShareCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountCircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon refresh-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RefreshIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.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!./SharingDetailsTab.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"sharingTabDetailsView\">\n\t\t<div class=\"sharingTabDetailsView__header\">\n\t\t\t<span>\n\t\t\t\t<NcAvatar v-if=\"isUserShare\"\n\t\t\t\t\tclass=\"sharing-entry__avatar\"\n\t\t\t\t\t:is-no-user=\"share.shareType !== ShareType.User\"\n\t\t\t\t\t:user=\"share.shareWith\"\n\t\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\t\t:menu-position=\"'left'\"\n\t\t\t\t\t:url=\"share.shareWithAvatar\" />\n\t\t\t\t<component :is=\"getShareTypeIcon(share.type)\" :size=\"32\" />\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t<h1>{{ title }}</h1>\n\t\t\t</span>\n\t\t</div>\n\t\t<div class=\"sharingTabDetailsView__wrapper\">\n\t\t\t<div ref=\"quickPermissions\" class=\"sharingTabDetailsView__quick-permissions\">\n\t\t\t\t<div>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"read-only\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.READ_ONLY.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'View only') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ViewIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"upload-edit\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"allPermissions\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t<template v-if=\"allowsFileDrop\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow upload and editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EditIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"allowsFileDrop\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"file-drop\"\n\t\t\t\t\t\t:button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.FILE_DROP.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'File request') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ t('files_sharing', 'Upload only') }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<UploadIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"custom\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"'custom'\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"expandCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ customPermissionsList }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"sharingTabDetailsView__advanced-control\">\n\t\t\t\t<NcButton id=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\talignment=\"end-reverse\"\n\t\t\t\t\taria-controls=\"advancedSectionAccordionAdvanced\"\n\t\t\t\t\t:aria-expanded=\"advancedControlExpandedValue\"\n\t\t\t\t\t@click=\"advancedSectionAccordionExpanded = !advancedSectionAccordionExpanded\">\n\t\t\t\t\t{{ t('files_sharing', 'Advanced settings') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuDownIcon v-if=\"!advancedSectionAccordionExpanded\" />\n\t\t\t\t\t\t<MenuUpIcon v-else />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div v-if=\"advancedSectionAccordionExpanded\"\n\t\t\t\tid=\"advancedSectionAccordionAdvanced\"\n\t\t\t\tclass=\"sharingTabDetailsView__advanced\"\n\t\t\t\taria-labelledby=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\trole=\"region\">\n\t\t\t\t<section>\n\t\t\t\t\t<NcInputField v-if=\"isPublicShare\"\n\t\t\t\t\t\tclass=\"sharingTabDetailsView__label\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share label')\"\n\t\t\t\t\t\t:value.sync=\"share.label\" />\n\t\t\t\t\t<NcInputField v-if=\"config.allowCustomTokens && isPublicShare && !isNewShare\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share link token')\"\n\t\t\t\t\t\t:helper-text=\"t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.')\"\n\t\t\t\t\t\tshow-trailing-button\n\t\t\t\t\t\t:trailing-button-label=\"loadingToken ? t('files_sharing', 'Generating…') : t('files_sharing', 'Generate new token')\"\n\t\t\t\t\t\t:value.sync=\"share.token\"\n\t\t\t\t\t\t@trailing-button-click=\"generateNewToken\">\n\t\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"loadingToken\" />\n\t\t\t\t\t\t\t<Refresh v-else :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcInputField>\n\t\t\t\t\t<template v-if=\"isPublicShare\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"isPasswordProtected\" :disabled=\"isPasswordEnforced\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Set password') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcPasswordField v-if=\"isPasswordProtected\"\n\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t:value=\"hasUnsavedPassword ? share.newPassword : ''\"\n\t\t\t\t\t\t\t:error=\"passwordError\"\n\t\t\t\t\t\t\t:helper-text=\"errorPasswordLabel || passwordHint\"\n\t\t\t\t\t\t\t:required=\"isPasswordEnforced && isNewShare\"\n\t\t\t\t\t\t\t:label=\"t('files_sharing', 'Password')\"\n\t\t\t\t\t\t\t@update:value=\"onPasswordChange\" />\n\n\t\t\t\t\t\t<!-- Migrate icons and remote -> icon=\"icon-info\"-->\n\t\t\t\t\t\t<span v-if=\"isEmailShareType && passwordExpirationTime\" icon=\"icon-info\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-else-if=\"isEmailShareType && passwordExpirationTime !== null\" icon=\"icon-error\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expired') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"canTogglePasswordProtectedByTalkAvailable\"\n\t\t\t\t\t\t:checked.sync=\"isPasswordProtectedByTalk\"\n\t\t\t\t\t\t@update:checked=\"onPasswordProtectedByTalkChange\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Video verification') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"hasExpirationDate\" :disabled=\"isExpiryDateEnforced\">\n\t\t\t\t\t\t{{ isExpiryDateEnforced\n\t\t\t\t\t\t\t? t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t\t: t('files_sharing', 'Set expiration date') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcDateTimePickerNative v-if=\"hasExpirationDate\"\n\t\t\t\t\t\tid=\"share-date-picker\"\n\t\t\t\t\t\t:value=\"new Date(share.expireDate ?? dateTomorrow)\"\n\t\t\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t\t\thide-label\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\ttype=\"date\"\n\t\t\t\t\t\t@input=\"onExpirationChange\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare\"\n\t\t\t\t\t\t:disabled=\"canChangeHideDownload\"\n\t\t\t\t\t\t:checked.sync=\"share.hideDownload\"\n\t\t\t\t\t\t@update:checked=\"queueUpdate('hideDownload')\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Hide download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-else\n\t\t\t\t\t\t:disabled=\"!canSetDownload\"\n\t\t\t\t\t\t:checked.sync=\"canDownload\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"download\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Allow download and sync') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Note to recipient') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<template v-if=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t<NcTextArea :label=\"t('files_sharing', 'Note to recipient')\"\n\t\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Enter a note for the share recipient')\"\n\t\t\t\t\t\t\t:value.sync=\"share.note\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare && isFolder\"\n\t\t\t\t\t\t:checked.sync=\"showInGridView\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Show files in grid view') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t\tref=\"externalLinkActions\"\n\t\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:share=\"share\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"setCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<section v-if=\"setCustomPermissions\" class=\"custom-permissions-group\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canRemoveReadPermission\"\n\t\t\t\t\t\t\t:checked.sync=\"hasRead\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"read\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Read') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isFolder\"\n\t\t\t\t\t\t\t:disabled=\"!canSetCreate\"\n\t\t\t\t\t\t\t:checked.sync=\"canCreate\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"create\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Create') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetEdit\"\n\t\t\t\t\t\t\t:checked.sync=\"canEdit\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"update\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Edit') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"resharingIsPossible\"\n\t\t\t\t\t\t\t:disabled=\"!canSetReshare\"\n\t\t\t\t\t\t\t:checked.sync=\"canReshare\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"share\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Share') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetDelete\"\n\t\t\t\t\t\t\t:checked.sync=\"canDelete\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"delete\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div class=\"sharingTabDetailsView__delete\">\n\t\t\t\t\t\t<NcButton v-if=\"!isNewShare\"\n\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Delete share')\"\n\t\t\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\t\t\t:readonly=\"false\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t@click.prevent=\"removeShare\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CloseIcon :size=\"16\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete share') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"sharingTabDetailsView__footer\">\n\t\t\t<div class=\"button-group\">\n\t\t\t\t<NcButton data-cy-files-sharing-share-editor-action=\"cancel\"\n\t\t\t\t\t@click=\"cancel\">\n\t\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\tdata-cy-files-sharing-share-editor-action=\"save\"\n\t\t\t\t\t:disabled=\"creating\"\n\t\t\t\t\t@click=\"saveShare\">\n\t\t\t\t\t{{ shareButtonText }}\n\t\t\t\t\t<template v-if=\"creating\" #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { getLanguage } from '@nextcloud/l10n'\nimport { ShareType } from '@nextcloud/sharing'\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\n\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcDateTimePickerNative from '@nextcloud/vue/components/NcDateTimePickerNative'\nimport NcInputField from '@nextcloud/vue/components/NcInputField'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcPasswordField from '@nextcloud/vue/components/NcPasswordField'\nimport NcTextArea from '@nextcloud/vue/components/NcTextArea'\n\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport EditIcon from 'vue-material-design-icons/Pencil.vue'\nimport EmailIcon from 'vue-material-design-icons/Email.vue'\nimport LinkIcon from 'vue-material-design-icons/Link.vue'\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue'\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue'\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue'\nimport ViewIcon from 'vue-material-design-icons/Eye.vue'\nimport UploadIcon from 'vue-material-design-icons/Upload.vue'\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport Refresh from 'vue-material-design-icons/Refresh.vue'\n\nimport ExternalShareAction from '../components/ExternalShareAction.vue'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport { generateToken } from '../services/TokenService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n\thasPermissions,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingDetailsTab',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcDateTimePickerNative,\n\t\tNcInputField,\n\t\tNcLoadingIcon,\n\t\tNcPasswordField,\n\t\tNcTextArea,\n\t\tCloseIcon,\n\t\tCircleIcon,\n\t\tEditIcon,\n\t\tExternalShareAction,\n\t\tLinkIcon,\n\t\tGroupIcon,\n\t\tShareIcon,\n\t\tUserIcon,\n\t\tUploadIcon,\n\t\tViewIcon,\n\t\tMenuDownIcon,\n\t\tMenuUpIcon,\n\t\tDotsHorizontalIcon,\n\t\tRefresh,\n\t},\n\tmixins: [ShareRequests, SharesMixin],\n\tprops: {\n\t\tshareRequestValue: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twriteNoteToRecipientIsChecked: false,\n\t\t\tsharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\trevertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\tsetCustomPermissions: false,\n\t\t\tpasswordError: false,\n\t\t\tadvancedSectionAccordionExpanded: false,\n\t\t\tbundledPermissions: BUNDLED_PERMISSIONS,\n\t\t\tisFirstComponentLoad: true,\n\t\t\ttest: false,\n\t\t\tcreating: false,\n\t\t\tinitialToken: this.share.token,\n\t\t\tloadingToken: false,\n\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tswitch (this.share.type) {\n\t\t\tcase ShareType.User:\n\t\t\t\treturn t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })\n\t\t\tcase ShareType.Email:\n\t\t\t return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn t('files_sharing', 'Share with group')\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn t('files_sharing', 'Share in conversation')\n\t\t\tcase ShareType.Remote: {\n\t\t\t\tconst [user, server] = this.share.shareWith.split('@')\n\t\t\t\treturn t('files_sharing', 'Share with {user} on remote server {server}', { user, server })\n\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\t\treturn t('files_sharing', 'Share with remote group')\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn t('files_sharing', 'Share with guest')\n\t\t\tdefault: {\n\t\t\t\tif (this.share.id) {\n\t\t\t\t\t// Share already exists\n\t\t\t\t\treturn t('files_sharing', 'Update share')\n\t\t\t\t} else {\n\t\t\t\t\treturn t('files_sharing', 'Create share')\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\tallPermissions() {\n\t\t\treturn this.isFolder ? this.bundledPermissions.ALL.toString() : this.bundledPermissions.ALL_FILE.toString()\n\t\t},\n\t\t/**\n\t\t * Can the sharee edit the shared file ?\n\t\t */\n\t\tcanEdit: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasUpdatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isEditChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee create the shared file ?\n\t\t */\n\t\tcanCreate: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasCreatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isCreateChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee delete the shared file ?\n\t\t */\n\t\tcanDelete: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDeletePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDeleteChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee reshare the file ?\n\t\t */\n\t\tcanReshare: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasSharePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReshareChecked: checked })\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Change the default view for public shares from \"list\" to \"grid\"\n\t\t */\n\t\tshowInGridView: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('config', 'grid_view', false)\n\t\t\t},\n\t\t\t/** @param {boolean} value If the default view should be changed to \"grid\" */\n\t\t\tset(value) {\n\t\t\t\tthis.setShareAttribute('config', 'grid_view', value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Can the sharee download files or only view them ?\n\t\t */\n\t\tcanDownload: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('permissions', 'download', true)\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.setShareAttribute('permissions', 'download', checked)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is this share readable\n\t\t * Needed for some federated shares that might have been added from file requests links\n\t\t */\n\t\thasRead: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasReadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Does the current share have an expiration date\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasExpirationDate: {\n\t\t\tget() {\n\t\t\t\treturn this.isValidShareAttribute(this.share.expireDate)\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.expireDate = enabled\n\t\t\t\t\t? this.formatDateToString(this.defaultExpiryDate)\n\t\t\t\t\t: ''\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share a folder ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisSetDownloadButtonVisible() {\n\t\t\tconst allowedMimetypes = [\n\t\t\t\t// Office documents\n\t\t\t\t'application/msword',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/vnd.ms-powerpoint',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t'application/vnd.ms-excel',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.oasis.opendocument.text',\n\t\t\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t\t]\n\n\t\t\treturn this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype)\n\t\t},\n\t\tisPasswordEnforced() {\n\t\t\treturn this.isPublicShare && this.config.enforcePasswordForPublicLink\n\t\t},\n\t\tdefaultExpiryDate() {\n\t\t\tif ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultInternalExpirationDate)\n\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultRemoteExpireDateEnabled)\n\t\t\t} else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultExpirationDate)\n\t\t\t}\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\t\tisUserShare() {\n\t\t\treturn this.share.type === ShareType.User\n\t\t},\n\t\tisGroupShare() {\n\t\t\treturn this.share.type === ShareType.Group\n\t\t},\n\t\tallowsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tif (this.share.type === ShareType.Link || this.share.type === ShareType.Email) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\thasFileDropPermissions() {\n\t\t\treturn this.share.permissions === this.bundledPermissions.FILE_DROP\n\t\t},\n\t\tshareButtonText() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\treturn t('files_sharing', 'Save share')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Update share')\n\n\t\t},\n\t\tresharingIsPossible() {\n\t\t\treturn this.config.isResharingAllowed && this.share.type !== ShareType.Link && this.share.type !== ShareType.Email\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can edit the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetEdit() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE) || this.canEdit\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can create the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetCreate() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_CREATE) || this.canCreate\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can delete the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDelete() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_DELETE) || this.canDelete\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can reshare the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetReshare() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_SHARE) || this.canReshare\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can download the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDownload() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.canDownload() || this.canDownload)\n\t\t},\n\t\tcanRemoveReadPermission() {\n\t\t\treturn this.allowsFileDrop && (\n\t\t\t\tthis.share.type === ShareType.Link\n\t\t\t\t\t|| this.share.type === ShareType.Email\n\t\t\t)\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPublicShare || !this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Is Talk enabled?\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t\tcustomPermissionsList() {\n\t\t\t// Key order will be different, because ATOMIC_PERMISSIONS are numbers\n\t\t\tconst translatedPermissions = {\n\t\t\t\t[ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n\t\t\t\t[ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n\t\t\t\t[ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n\t\t\t\t[ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n\t\t\t\t[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),\n\t\t\t}\n\n\t\t\tconst permissionsList = [\n\t\t\t\tATOMIC_PERMISSIONS.READ,\n\t\t\t\t...(this.isFolder ? [ATOMIC_PERMISSIONS.CREATE] : []),\n\t\t\t\tATOMIC_PERMISSIONS.UPDATE,\n\t\t\t\t...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []),\n\t\t\t\t...(this.isFolder ? [ATOMIC_PERMISSIONS.DELETE] : []),\n\t\t\t]\n\n\t\t\treturn permissionsList.filter((permission) => hasPermissions(this.share.permissions, permission))\n\t\t\t\t.map((permission, index) => index === 0\n\t\t\t\t\t? translatedPermissions[permission]\n\t\t\t\t\t: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))\n\t\t\t\t.join(', ')\n\t\t},\n\t\tadvancedControlExpandedValue() {\n\t\t\treturn this.advancedSectionAccordionExpanded ? 'true' : 'false'\n\t\t},\n\t\terrorPasswordLabel() {\n\t\t\tif (this.passwordError) {\n\t\t\t\treturn t('files_sharing', 'Password field cannot be empty')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tpasswordHint() {\n\t\t\tif (this.isNewShare || this.hasUnsavedPassword) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Replace current password')\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && action.advanced\n\t\t\t// filter only the advanced registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\t},\n\twatch: {\n\t\tsetCustomPermissions(isChecked) {\n\t\t\tif (isChecked) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t} else {\n\t\t\t\tthis.sharingPermission = this.revertSharingPermission\n\t\t\t}\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.initializePermissions()\n\t\tthis.initializeAttributes()\n\t\tlogger.debug('Share object received', { share: this.share })\n\t\tlogger.debug('Configuration object received', { config: this.config })\n\t},\n\n\tmounted() {\n\t\tthis.$refs.quickPermissions?.querySelector('input:checked')?.focus()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Set a share attribute on the current share\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {boolean} value The value\n\t\t */\n\t\tsetShareAttribute(scope, key, value) {\n\t\t\tif (!this.share.attributes) {\n\t\t\t\tthis.$set(this.share, 'attributes', [])\n\t\t\t}\n\n\t\t\tconst attribute = this.share.attributes\n\t\t\t\t.find((attr) => attr.scope === scope || attr.key === key)\n\n\t\t\tif (attribute) {\n\t\t\t\tattribute.value = value\n\t\t\t} else {\n\t\t\t\tthis.share.attributes.push({\n\t\t\t\t\tscope,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the value of a share attribute\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {undefined|boolean} fallback The fallback to return if not found\n\t\t */\n\t\tgetShareAttribute(scope, key, fallback = undefined) {\n\t\t\tconst attribute = this.share.attributes?.find((attr) => attr.scope === scope && attr.key === key)\n\t\t\treturn attribute?.value ?? fallback\n\t\t},\n\n\t\tasync generateNewToken() {\n\t\t\tif (this.loadingToken) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loadingToken = true\n\t\t\ttry {\n\t\t\t\tthis.share.token = await generateToken()\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_sharing', 'Failed to generate a new token'))\n\t\t\t}\n\t\t\tthis.loadingToken = false\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.share.token = this.initialToken\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\n\t\tupdateAtomicPermissions({\n\t\t\tisReadChecked = this.hasRead,\n\t\t\tisEditChecked = this.canEdit,\n\t\t\tisCreateChecked = this.canCreate,\n\t\t\tisDeleteChecked = this.canDelete,\n\t\t\tisReshareChecked = this.canReshare,\n\t\t} = {}) {\n\t\t\t// calc permissions if checked\n\n\t\t\tif (!this.isFolder && (isCreateChecked || isDeleteChecked)) {\n\t\t\t\tlogger.debug('Ignoring create/delete permissions for file share — only available for folders')\n\t\t\t\tisCreateChecked = false\n\t\t\t\tisDeleteChecked = false\n\t\t\t}\n\n\t\t\tconst permissions = 0\n\t\t\t\t| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)\n\t\t\t\t| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)\n\t\t\t\t| (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0)\n\t\t\t\t| (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0)\n\t\t\t\t| (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0)\n\t\t\tthis.share.permissions = permissions\n\t\t},\n\t\texpandCustomPermissions() {\n\t\t\tif (!this.advancedSectionAccordionExpanded) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\t\t\tthis.toggleCustomPermissions()\n\t\t},\n\t\ttoggleCustomPermissions(selectedPermission) {\n\t\t\tconst isCustomPermissions = this.sharingPermission === 'custom'\n\t\t\tthis.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'\n\t\t\tthis.setCustomPermissions = isCustomPermissions\n\t\t},\n\t\tasync initializeAttributes() {\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif ((this.config.enableLinkPasswordByDefault || this.isPasswordEnforced) && this.isPublicShare) {\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t\tthis.$set(this.share, 'password', this.share.newPassword)\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\t\t\t\t/* Set default expiration dates if configured */\n\t\t\t\tif (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultExpirationDate.toDateString()\n\t\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString()\n\t\t\t\t} else if (this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultInternalExpirationDate.toDateString()\n\t\t\t\t}\n\n\t\t\t\tif (this.isValidShareAttribute(this.share.expireDate)) {\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If there is an enforced expiry date, then existing shares created before enforcement\n\t\t\t// have no expiry date, hence we set it here.\n\t\t\tif (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {\n\t\t\t\tthis.hasExpirationDate = true\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.isValidShareAttribute(this.share.password)\n\t\t\t\t|| this.isValidShareAttribute(this.share.expireDate)\n\t\t\t\t|| this.isValidShareAttribute(this.share.label)\n\t\t\t) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\n\t\t\tif (this.share.note) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t}\n\n\t\t},\n\t\thandleShareType() {\n\t\t\tif ('shareType' in this.share) {\n\t\t\t\tthis.share.type = this.share.shareType\n\t\t\t} else if (this.share.share_type) {\n\t\t\t\tthis.share.type = this.share.share_type\n\t\t\t}\n\t\t},\n\t\thandleDefaultPermissions() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst defaultPermissions = this.config.defaultPermissions\n\t\t\t\tif (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t\tthis.sharingPermission = defaultPermissions.toString()\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\t\tthis.share.permissions = defaultPermissions\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t\tthis.setCustomPermissions = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Read permission required for share creation\n\t\t\tif (!this.canRemoveReadPermission) {\n\t\t\t\tthis.hasRead = true\n\t\t\t}\n\t\t},\n\t\thandleCustomPermissions() {\n\t\t\tif (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\tthis.setCustomPermissions = true\n\t\t\t} else if (this.share.permissions) {\n\t\t\t\tthis.sharingPermission = this.share.permissions.toString()\n\t\t\t}\n\t\t},\n\t\tinitializePermissions() {\n\t\t\tthis.handleShareType()\n\t\t\tthis.handleDefaultPermissions()\n\t\t\tthis.handleCustomPermissions()\n\t\t},\n\t\tasync saveShare() {\n\t\t\tconst permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']\n\t\t\tconst publicShareAttributes = ['label', 'password', 'hideDownload']\n\t\t\tif (this.config.allowCustomTokens) {\n\t\t\t\tpublicShareAttributes.push('token')\n\t\t\t}\n\t\t\tif (this.isPublicShare) {\n\t\t\t\tpermissionsAndAttributes.push(...publicShareAttributes)\n\t\t\t}\n\t\t\tconst sharePermissionsSet = parseInt(this.sharingPermission)\n\t\t\tif (this.setCustomPermissions) {\n\t\t\t\tthis.updateAtomicPermissions()\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = sharePermissionsSet\n\t\t\t}\n\n\t\t\tif (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t// It's not possible to create an existing file.\n\t\t\t\tthis.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\t}\n\t\t\tif (!this.writeNoteToRecipientIsChecked) {\n\t\t\t\tthis.share.note = ''\n\t\t\t}\n\t\t\tif (this.isPasswordProtected) {\n\t\t\t\tif (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {\n\t\t\t\t\tthis.share.password = this.share.newPassword\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t} else if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) {\n\t\t\t\t\tthis.passwordError = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.share.password = ''\n\t\t\t}\n\n\t\t\tif (!this.hasExpirationDate) {\n\t\t\t\tthis.share.expireDate = ''\n\t\t\t}\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst incomingShare = {\n\t\t\t\t\tpermissions: this.share.permissions,\n\t\t\t\t\tshareType: this.share.type,\n\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\tattributes: this.share.attributes,\n\t\t\t\t\tnote: this.share.note,\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t}\n\n\t\t\t\tincomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''\n\n\t\t\t\tif (this.isPasswordProtected) {\n\t\t\t\t\tincomingShare.password = this.share.password\n\t\t\t\t}\n\n\t\t\t\tlet share\n\t\t\t\ttry {\n\t\t\t\t\tthis.creating = true\n\t\t\t\t\tshare = await this.addShare(incomingShare)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.creating = false\n\t\t\t\t\t// Error is already handled by ShareRequests mixin\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// ugly hack to make code work - we need the id to be set but at the same time we need to keep values we want to update\n\t\t\t\tthis.share._share.id = share.id\n\t\t\t\tawait this.queueUpdate(...permissionsAndAttributes)\n\t\t\t\t// Also a ugly hack to update the updated permissions\n\t\t\t\tfor (const prop of permissionsAndAttributes) {\n\t\t\t\t\tif (prop in share && prop in this.share) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tshare[prop] = this.share[prop]\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tshare._share[prop] = this.share[prop]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.share = share\n\t\t\t\tthis.creating = false\n\t\t\t\tthis.$emit('add:share', this.share)\n\t\t\t} else {\n\t\t\t\t// Let's update after creation as some attrs are only available after creation\n\t\t\t\tthis.$emit('update:share', this.share)\n\t\t\t\temit('update:share', this.share)\n\t\t\t\tthis.queueUpdate(...permissionsAndAttributes)\n\t\t\t}\n\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\n\t\t\tif (this.$refs.externalLinkActions?.length > 0) {\n\t\t\t\tawait Promise.allSettled(this.$refs.externalLinkActions.map((action) => {\n\t\t\t\t\tif (typeof action.$children.at(0)?.onSave !== 'function') {\n\t\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t\t}\n\t\t\t\t\treturn action.$children.at(0)?.onSave?.()\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {Share} share incoming share object\n\t\t */\n\t\tasync addShare(share) {\n\t\t\tlogger.debug('Adding a new share from the input for', { share })\n\t\t\tconst path = this.path\n\t\t\ttry {\n\t\t\t\tconst resultingShare = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: share.shareType,\n\t\t\t\t\tshareWith: share.shareWith,\n\t\t\t\t\tpermissions: share.permissions,\n\t\t\t\t\texpireDate: share.expireDate,\n\t\t\t\t\tattributes: JSON.stringify(share.attributes),\n\t\t\t\t\t...(share.note ? { note: share.note } : {}),\n\t\t\t\t\t...(share.password ? { password: share.password } : {}),\n\t\t\t\t})\n\t\t\t\treturn resultingShare\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while adding new share', { error })\n\t\t\t} finally {\n\t\t\t\t// this.loading = false // No loader here yet\n\t\t\t}\n\t\t},\n\t\tasync removeShare() {\n\t\t\tawait this.onDelete()\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tif (password === '') {\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\tthis.passwordError = this.isNewShare && this.isPasswordEnforced\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.passwordError = !this.isValidShareAttribute(password)\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\t\tisValidShareAttribute(value) {\n\t\t\tif ([null, undefined].includes(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!(value.trim().length > 0)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tgetShareTypeIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn LinkIcon\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn UserIcon\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn GroupIcon\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn EmailIcon\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn CircleIcon\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.ScienceMesh:\n\t\t\t\treturn ShareIcon\n\t\t\tdefault:\n\t\t\t\treturn null // Or a default icon component if needed\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nexport const generateToken = async () => {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n};\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!./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=4d0ee506&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&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 \"4d0ee506\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharingTab\" :class=\"{ 'icon-loading': loading }\">\n\t\t<!-- error message -->\n\t\t<div v-if=\"error\" class=\"emptycontent\" :class=\"{ emptyContentWithSections: sections.length > 0 }\">\n\t\t\t<div class=\"icon icon-error\" />\n\t\t\t<h2>{{ error }}</h2>\n\t\t</div>\n\n\t\t<!-- shares content -->\n\t\t<div v-show=\"!showSharingDetailsView\"\n\t\t\tclass=\"sharingTab__content\">\n\t\t\t<!-- shared with me information -->\n\t\t\t<ul v-if=\"isSharedWithMe\">\n\t\t\t\t<SharingEntrySimple v-bind=\"sharedWithMe\" class=\"sharing-entry__reshare\">\n\t\t\t\t\t<template #avatar>\n\t\t\t\t\t\t<NcAvatar :user=\"sharedWithMe.user\"\n\t\t\t\t\t\t\t:display-name=\"sharedWithMe.displayName\"\n\t\t\t\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t\t\t\t</template>\n\t\t\t\t</SharingEntrySimple>\n\t\t\t</ul>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Internal shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Internal shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ internalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- add new share input -->\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:placeholder=\"internalShareInputPlaceholder\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- other shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\tref=\"shareList\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- inherited shares -->\n\t\t\t\t<SharingInherited v-if=\"canReshare && !loading\" :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- internal link copy -->\n\t\t\t\t<SharingEntryInternal :file-info=\"fileInfo\" />\n\t\t\t</section>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'External shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'External shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ externalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:is-external=\"true\"\n\t\t\t\t\t:placeholder=\"externalShareInputPlaceholder\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- Non link external shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\t:shares=\"externalShares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- link shares list -->\n\t\t\t\t<SharingLinkList v-if=\"!loading\"\n\t\t\t\t\tref=\"linkShareList\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:shares=\"linkShares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t</section>\n\n\t\t\t<section v-if=\"sections.length > 0 && !showSharingDetailsView\">\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Additional shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Additional shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ additionalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- additional entries, use it with cautious -->\n\t\t\t\t<div v-for=\"(section, index) in sections\"\n\t\t\t\t\t:ref=\"'section-' + index\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<component :is=\"section($refs['section-'+index], fileInfo)\" :file-info=\"fileInfo\" />\n\t\t\t\t</div>\n\n\t\t\t\t<!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config \"projects.enabled\" ; ignore this / remove it / move into own section) -->\n\t\t\t\t<div v-if=\"projectsEnabled\"\n\t\t\t\t\tv-show=\"!showSharingDetailsView && fileInfo\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<CollectionList :id=\"`${fileInfo.id}`\"\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t:name=\"fileInfo.name\" />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\n\t\t<!-- share details -->\n\t\t<SharingDetailsTab v-if=\"showSharingDetailsView\"\n\t\t\t:file-info=\"shareDetailsData.fileInfo\"\n\t\t\t:share=\"shareDetailsData.share\"\n\t\t\t@close-sharing-details=\"toggleShareDetailsView\"\n\t\t\t@add:share=\"addShare\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</div>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { orderBy } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { CollectionList } from 'nextcloud-vue-collections'\nimport { ShareType } from '@nextcloud/sharing'\n\nimport InfoIcon from 'vue-material-design-icons/Information.vue'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\n\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcButton from '@nextcloud/vue/components/NcButton'\n\nimport { shareWithTitle } from '../utils/SharedWithMe.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\nimport SharingInput from '../components/SharingInput.vue'\n\nimport SharingInherited from './SharingInherited.vue'\nimport SharingLinkList from './SharingLinkList.vue'\nimport SharingList from './SharingList.vue'\nimport SharingDetailsTab from './SharingDetailsTab.vue'\n\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tname: 'SharingTab',\n\n\tcomponents: {\n\t\tCollectionList,\n\t\tInfoIcon,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcPopover,\n\t\tSharingEntryInternal,\n\t\tSharingEntrySimple,\n\t\tSharingInherited,\n\t\tSharingInput,\n\t\tSharingLinkList,\n\t\tSharingList,\n\t\tSharingDetailsTab,\n\t},\n\tmixins: [ShareDetails],\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tdeleteEvent: null,\n\t\t\terror: '',\n\t\t\texpirationInterval: null,\n\t\t\tloading: true,\n\n\t\t\tfileInfo: null,\n\n\t\t\t// reshare Share object\n\t\t\treshare: null,\n\t\t\tsharedWithMe: {},\n\t\t\tshares: [],\n\t\t\tlinkShares: [],\n\t\t\texternalShares: [],\n\n\t\t\tsections: OCA.Sharing.ShareTabSections.getSections(),\n\t\t\tprojectsEnabled: loadState('core', 'projects_enabled', false),\n\t\t\tshowSharingDetailsView: false,\n\t\t\tshareDetailsData: {},\n\t\t\treturnFocusElement: null,\n\n\t\t\tinternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.'),\n\t\t\texternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.'),\n\t\t\tadditionalSharesHelpText: t('files_sharing', 'Shares that are not part of the internal or external shares. This can be shares from apps or other sources.'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is this share shared with me?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSharedWithMe() {\n\t\t\treturn Object.keys(this.sharedWithMe).length > 0\n\t\t},\n\n\t\tcanReshare() {\n\t\t\treturn !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)\n\t\t\t\t|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)\n\t\t},\n\n\t\tinternalShareInputPlaceholder() {\n\t\t\treturn this.config.showFederatedSharesAsInternal\n\t\t\t\t? t('files_sharing', 'Share with accounts, teams, federated cloud id')\n\t\t\t\t: t('files_sharing', 'Share with accounts and teams')\n\t\t},\n\n\t\texternalShareInputPlaceholder() {\n\t\t\treturn this.config.showFederatedSharesAsInternal\n\t\t\t\t? t('files_sharing', 'Email')\n\t\t\t\t: t('files_sharing', 'Email, federated cloud id')\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.getShares()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing shares infos\n\t\t */\n\t\tasync getShares() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\t// init params\n\t\t\t\tconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\t\t\t\tconst format = 'json'\n\t\t\t\t// TODO: replace with proper getFUllpath implementation of our own FileInfo model\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\n\t\t\t\t// fetch shares\n\t\t\t\tconst fetchShares = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treshares: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tconst fetchSharedWithMe = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tshared_with_me: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t// wait for data\n\t\t\t\tconst [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe])\n\t\t\t\tthis.loading = false\n\n\t\t\t\t// process results\n\t\t\t\tthis.processSharedWithMe(sharedWithMe)\n\t\t\t\tthis.processShares(shares)\n\t\t\t} catch (error) {\n\t\t\t\tif (error?.response?.data?.ocs?.meta?.message) {\n\t\t\t\t\tthis.error = error.response.data.ocs.meta.message\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = t('files_sharing', 'Unable to load the shares list')\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t\tconsole.error('Error loading the shares list', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tclearInterval(this.expirationInterval)\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.sharedWithMe = {}\n\t\t\tthis.shares = []\n\t\t\tthis.linkShares = []\n\t\t\tthis.showSharingDetailsView = false\n\t\t\tthis.shareDetailsData = {}\n\t\t},\n\n\t\t/**\n\t\t * Update sharedWithMe.subtitle with the appropriate\n\t\t * expiration time left\n\t\t *\n\t\t * @param {Share} share the sharedWith Share object\n\t\t */\n\t\tupdateExpirationSubtitle(share) {\n\t\t\tconst expiration = moment(share.expireDate).unix()\n\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n\t\t\t\trelativetime: moment(expiration * 1000).fromNow(),\n\t\t\t}))\n\n\t\t\t// share have expired\n\t\t\tif (moment().unix() > expiration) {\n\t\t\t\tclearInterval(this.expirationInterval)\n\t\t\t\t// TODO: clear ui if share is expired\n\t\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the current shares data\n\t\t * and init shares[]\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessShares({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n\t\t\t\tconst shares = orderBy(\n\t\t\t\t\tdata.ocs.data.map(share => new Share(share)),\n\t\t\t\t\t[\n\t\t\t\t\t\t// First order by the \"share with\" label\n\t\t\t\t\t\t(share) => share.shareWithDisplayName,\n\t\t\t\t\t\t// Then by the label\n\t\t\t\t\t\t(share) => share.label,\n\t\t\t\t\t\t// And last resort order by createdTime\n\t\t\t\t\t\t(share) => share.createdTime,\n\t\t\t\t\t],\n\t\t\t\t)\n\n\t\t\t\tfor (const share of shares) {\n\t\t\t\t\tif ([ShareType.Link, ShareType.Email].includes(share.type)) {\n\t\t\t\t\t\tthis.linkShares.push(share)\n\t\t\t\t\t} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {\n\t\t\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\t\t\tthis.shares.push(share)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.externalShares.push(share)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.shares.push(share)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`Processed ${this.linkShares.length} link share(s)`)\n\t\t\t\tlogger.debug(`Processed ${this.shares.length} share(s)`)\n\t\t\t\tlogger.debug(`Processed ${this.externalShares.length} external share(s)`)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the sharedWithMe share data\n\t\t * and init sharedWithMe\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessSharedWithMe({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data[0]) {\n\t\t\t\tconst share = new Share(data)\n\t\t\t\tconst title = shareWithTitle(share)\n\t\t\t\tconst displayName = share.ownerDisplayName\n\t\t\t\tconst user = share.owner\n\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName,\n\t\t\t\t\ttitle,\n\t\t\t\t\tuser,\n\t\t\t\t}\n\t\t\t\tthis.reshare = share\n\n\t\t\t\t// If we have an expiration date, use it as subtitle\n\t\t\t\t// Refresh the status every 10s and clear if expired\n\t\t\t\tif (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n\t\t\t\t\t// first update\n\t\t\t\t\tthis.updateExpirationSubtitle(share)\n\t\t\t\t\t// interval update\n\t\t\t\t\tthis.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)\n\t\t\t\t}\n\t\t\t} else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== getCurrentUser().uid : false) {\n\t\t\t\t// Fallback to compare owner and current user.\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName: this.fileInfo.shareOwner,\n\t\t\t\t\ttitle: t(\n\t\t\t\t\t\t'files_sharing',\n\t\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t\t{ owner: this.fileInfo.shareOwner },\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ escape: false },\n\t\t\t\t\t),\n\t\t\t\t\tuser: this.fileInfo.shareOwnerId,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add a new share into the shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} [resolve] a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve = () => { }) {\n\t\t\t// only catching share type MAIL as link shares are added differently\n\t\t\t// meaning: not from the ShareInput\n\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\tthis.linkShares.unshift(share)\n\t\t\t} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {\n\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\tthis.shares.unshift(share)\n\t\t\t\t} else {\n\t\t\t\t\tthis.externalShares.unshift(share)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.shares.unshift(share)\n\t\t\t}\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\t// Get reference for this.linkShares or this.shares\n\t\t\tconst shareList\n\t\t\t\t= share.type === ShareType.Email\n\t\t\t\t\t|| share.type === ShareType.Link\n\t\t\t\t\t? this.linkShares\n\t\t\t\t\t: this.shares\n\t\t\tconst index = shareList.findIndex(item => item.id === share.id)\n\t\t\tif (index !== -1) {\n\t\t\t\tshareList.splice(index, 1)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tlet listComponent = this.$refs.shareList\n\t\t\t\t// Only mail shares comes from the input, link shares\n\t\t\t\t// are managed internally in the SharingLinkList component\n\t\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\t\tlistComponent = this.$refs.linkShareList\n\t\t\t\t}\n\t\t\t\tconst newShare = listComponent.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\ttoggleShareDetailsView(eventData) {\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tconst isAction = Array.from(document.activeElement.classList)\n\t\t\t\t\t.some(className => className.startsWith('action-'))\n\t\t\t\tif (isAction) {\n\t\t\t\t\tconst menuId = document.activeElement.closest('[role=\"menu\"]')?.id\n\t\t\t\t\tthis.returnFocusElement = document.querySelector(`[aria-controls=\"${menuId}\"]`)\n\t\t\t\t} else {\n\t\t\t\t\tthis.returnFocusElement = document.activeElement\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (eventData) {\n\t\t\t\tthis.shareDetailsData = eventData\n\t\t\t}\n\n\t\t\tthis.showSharingDetailsView = !this.showSharingDetailsView\n\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tthis.$nextTick(() => { // Wait for next tick as the element must be visible to be focused\n\t\t\t\t\tthis.returnFocusElement?.focus()\n\t\t\t\t\tthis.returnFocusElement = null\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\nconst shareWithTitle = function(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.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!./SharingTab.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!./SharingTab.vue?vue&type=style&index=0&id=6d3bde10&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingTab.vue?vue&type=style&index=0&id=6d3bde10&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=6d3bde10&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=6d3bde10&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d3bde10\",\n null\n \n)\n\nexport default component.exports","// 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, `.sharing-entry[data-v-2dbd45b5]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-2dbd45b5]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-2dbd45b5]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-2dbd45b5],.sharing-entry__summary__desc small[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntry.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: flex-start;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\n\\t\\t&__desc {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tpadding-bottom: 0;\\n\\t\\t\\tline-height: 1.2em;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t\\tp,\\n\\t\\t\\tsmall {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-unique {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-6d3bde10]{margin:1rem auto}.sharingTab[data-v-6d3bde10]{position:relative;height:100%}.sharingTab__content[data-v-6d3bde10]{padding:0 6px}.sharingTab__content section[data-v-6d3bde10]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-6d3bde10]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-6d3bde10]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-6d3bde10]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-6d3bde10]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-6d3bde10]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-6d3bde10]{margin:44px 0}.hint-body[data-v-6d3bde10]{max-width:300px;padding:var(--border-radius-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingTab.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,aAAA,CAIF,4BACC,eAAA,CACA,oCAAA\",\"sourcesContent\":[\"\\n.emptyContentWithSections {\\n\\tmargin: 1rem auto;\\n}\\n\\n.sharingTab {\\n\\tposition: relative;\\n\\theight: 100%;\\n\\n\\t&__content {\\n\\t\\tpadding: 0 6px;\\n\\n\\t\\tsection {\\n\\t\\t\\tpadding-bottom: 16px;\\n\\n\\t\\t\\t.section-header {\\n\\t\\t\\t\\tmargin-top: 2px;\\n\\t\\t\\t\\tmargin-bottom: 2px;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tpadding-bottom: 4px;\\n\\n\\t\\t\\t\\th4 {\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.visually-hidden {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.hint-icon {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\t& > section:not(:last-child) {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__additionalContent {\\n\\t\\tmargin: 44px 0;\\n\\t}\\n}\\n\\n.hint-body {\\n\\tmax-width: 300px;\\n\\tpadding: var(--border-radius-element);\\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, `.share-select[data-v-2aa230f1]{display:block}.share-select[data-v-2aa230f1] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA\",\"sourcesContent\":[\"\\n.share-select {\\n\\tdisplay: block;\\n\\n\\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\\n\\t// Overrider NcActionms button to make it small\\n\\t:deep(.action-item__menutoggle) {\\n\\t\\tcolor: var(--color-primary-element) !important;\\n\\t\\tfont-size: 12.5px !important;\\n\\t\\theight: auto !important;\\n\\t\\tmin-height: auto !important;\\n\\n\\t\\t.button-vue__text {\\n\\t\\t\\tfont-weight: normal !important;\\n\\t\\t}\\n\\n\\t\\t.button-vue__icon {\\n\\t\\t\\theight: 24px !important;\\n\\t\\t\\tmin-height: 24px !important;\\n\\t\\t\\twidth: 24px !important;\\n\\t\\t\\tmin-width: 24px !important;\\n\\t\\t}\\n\\n\\t\\t.button-vue__wrapper {\\n\\t\\t\\t// Emulate NcButton's alignment=center-reverse\\n\\t\\t\\tflex-direction: row-reverse !important;\\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, `.sharing-entry[data-v-4d06a90a]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4d06a90a]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4d06a90a]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4d06a90a]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4d06a90a]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4d06a90a]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4d06a90a]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4d06a90a] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4d06a90a]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4d06a90a]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4d06a90a],.sharing-entry .action-item~.sharing-entry__loading[data-v-4d06a90a]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-4d06a90a]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-4d06a90a]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4d06a90a]{width:100%;height:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryLink.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\t}\\n\\n\\t\\t&__desc {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\tline-height: 1.2em;\\n\\n\\t\\t\\tp {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__title {\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmargin-inline-start: auto;\\n\\t\\t}\\n\\n\\t&:not(.sharing-entry--share) &__actions {\\n\\t\\t.new-share-link {\\n\\t\\t\\tborder-top: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t:deep(.avatar-link-share) {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t.sharing-entry__action--public-upload {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__loading {\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 14px;\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n\\n\\t// put menus to the left\\n\\t// but only the first one\\n\\t.action-item {\\n\\n\\t\\t~.action-item,\\n\\t\\t~.sharing-entry__loading {\\n\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-success);\\n\\t}\\n}\\n\\n// styling for the qr-code container\\n.qr-code-dialog {\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\tjustify-content: center;\\n\\n\\t&__img {\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../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, `.fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-42733c12] {\\n display: flex;\\n}\\n.linked-icons img[data-v-42733c12] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-42733c12]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-42733c12] {\\n display: none;\\n}\\n.popovermenu.open[data-v-42733c12] {\\n display: block;\\n}\\nli.collection-list-item[data-v-42733c12] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-42733c12] {\\n margin-top: 6px;\\n}\\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-42733c12] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-42733c12] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-42733c12] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\\n opacity: 1;\\n}\\n.shouldshake[data-v-42733c12] {\\n animation: shake-42733c12 0.6s 1 linear;\\n}\\n@keyframes shake-42733c12 {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}.collection-list *[data-v-8ebb2593] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-8ebb2593] {\\n display: flex;\\n align-items: start;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-8ebb2593] {\\n margin-top: auto;\\n}\\n#collection-select-container[data-v-8ebb2593] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-8ebb2593] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-8ebb2593]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-8ebb2593] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-8ebb2593] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-8ebb2593] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-8ebb2593] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-8ebb2593] {\\n display: block;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-8ebb2593] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","commonjsRequire","Error","qrcode","fn","createCommonjsModule","f","r","e","n","t","o","i","u","a","code","p","call","length","require","Promise","prototype","then","getSymbolSize","getRowColCoords","version","posCount","Math","floor","size","intervals","ceil","positions","reverse","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","data","this","mode","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","value","indexOf","put","BitBuffer","buffer","get","index","bufIndex","num","putBit","getLengthInBits","bit","BufferUtil","BitMatrix","alloc","reservedBit","set","row","col","reserved","xor","isReserved","ByteData","BYTE","from","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","string","toLowerCase","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","d","EXP_TABLE","LOG_TABLE","x","log","exp","mul","y","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","isNaN","parseInt","undefined","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","abs","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","Object","keys","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","toString","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","result","offset","slice","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","isArray","setupFormatInfo","matrix","bits","createData","segments","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","Array","ecData","maxDataSize","b","dataSize","encode","max","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","bind","create","options","toSJISFunc","setToSJISFunction","Polynomial","Buffer","genPoly","initialize","pad","paddedData","concat","remainder","start","buff","copy","numeric","kanji","byte","replace","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","str","test","dijkstra","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","sort","s1","s2","map","obj","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","graph","nodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","key","lastCount","prevNodeId","buildGraph","segs","buildNodes","path","find_path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","opts","cb","args","arguments","argsNum","isLastArgCb","getContext","resolve","reject","toCanvas","render","toDataURL","renderToDataURL","_","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","type","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","split","apply","hexValue","join","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","TYPED_ARRAY_SUPPORT","arr","Uint8Array","__proto__","foo","typedArraySupport","K_MAX_LENGTH","arg","allocUnsafe","that","TypeError","ArrayBuffer","byteOffset","byteLength","RangeError","buf","fromArrayLike","fromArrayBuffer","createBuffer","actual","isBuffer","len","checked","val","fromObject","utf8ToBytes","units","codePoint","leadSurrogate","bytes","charCodeAt","isView","Symbol","species","defineProperty","configurable","enumerable","writable","isFinite","remaining","src","dst","blitBuffer","utf8Write","end","newBuf","subarray","sliceLen","target","targetStart","fill","list","_isBuffer","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","for","SlowBuffer","INSPECT_MAX_BYTES","setPrototypeOf","encodingOrOffset","encoding","isEncoding","isInstance","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","strLen","parsed","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","kMaxLength","proto","console","error","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","INVALID_BASE64_RE","base64clean","constructor","name","alphabet","i16","single_source_shortest_paths","s","predecessors","costs","closest","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","msg","extract_shortest_path_from_predecessor_list","T","queue","sorter","default_sorter","item","shift","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","props","tag","default","$slots","watch","$props","deep","immediate","handler","$el","generate","methods","_this","url","innerHTML","mounted","factory","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","parseFloat","stringify","Date","toISOString","orderBy","collection","identifiers2","orders","sorting","collator","Intl","Collator","usage","a2","b2","identifier","entries","sortNodes","sortingOptions","sortingMode","sortingOrder","sortFavoritesFirst","attributes","favorite","sortFoldersFirst","basename2","displayname","basename","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","i2","getValue","isName","getAllMatches","matches","match","allmatches","startIndex","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","assign","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","substring","readAttributeStr","attrStr","attrStrStart","validateAttributeString","line","tagClosed","otg","openPos","afterAmp","validateAmpersand","JSON","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","count","message","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","attrs","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","add","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","window","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","search","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","charAt","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","requireOrderedObjParser","validator2","parse","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attr","attrVal","suppressBooleanAttributes","textValue","jArray","format","requireDebug","debug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","buildTextValNode","buildObjectNode","repeat","startsWith","build","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","release","identifierBase","base","throwErrors","er","requireParse","requireValid","requireMajor","self","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","iterator","appendTo","dict","has","getAll","query","propValue","useProxy","Proxy","construct","Function","USPProto","polyfill","toStringTag","callback","thisArg","parseToDict","getOwnPropertyNames","k","values","items","makeIterator","prev","cur","decode","decodeURIComponent","next","done","pairs","prop","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","global","freeSelf","now","reWhitespace","reTrimStart","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","nativeMax","nativeMin","service","http","listCollection","collectionId","renameCollection","collectionName","ocs","getCollectionsByResource","resourceType","resourceId","createCollection","post","response","addResource","removeResource","delete","params","state","collections","mutations","addCollections","addCollection","removeCollection","filter","updateCollection","findIndex","_item","actions","fetchCollectionsByResource","baseResourceType","baseResourceId","addResourceToCollection","resources","normalizeComponent","scriptExports","render3","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","CollectionListItem","components","NcAvatar","NcActions","NcActionButton","detailsOpen","newName","computed","getIcon","resource","iconClass","typeClass","limitedResources","iconUrl","mimetype","OC","MimeType","getIconUrl","toggleDetails","showDetails","hideDetails","openRename","catch","$set","setTimeout","_vm","_c","_self","staticClass","on","_v","_s","class","rename","$event","preventDefault","directives","rawName","expression","domProps","composing","_e","_l","link","_debouncedSearch","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","loading","searchCollections","finally","_sfc_main","NcSelect","isActive","Boolean","setup","selectIsOpen","generatingCodes","codes","model","isSelectOpen","find","placeholder","OCP","Collaboration","getTypes","method","title","getLabel","action","trigger","select","selectedOption","id2","setError","showSelect","$refs","focus","hideSelect","isVueComponent","_isVue","CollectionList","_m","ref","scopedSlots","_u","option","$$v","Config","_defineProperty","_capabilities","getCapabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isPublicShareAllowed","enabled","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","getLoggerBuilder","setApp","detectUser","Share","ocsData","hide_download","mail_send","warn","_share","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","_ref","scope","attribute","_ref2","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","logger","setAttribute","attrUpdate","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","storageId","storage_id","storage","itemSource","item_source","status","required","subtitle","isUnique","ariaExpanded","ariaExpandedValue","_t","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","copied","copySuccess","internalLink","location","protocol","host","generateUrl","copyLinkTooltip","internalLinkSubtitle","copyLink","navigator","clipboard","writeText","showSuccess","shareEntrySimple","actionsComponent","proxy","shareUrl","generateOcsUrl","createShare","shareType","publicUpload","request","axios","share","emit","errorMessage","meta","showError","deleteShare","Notification","showTemporary","updateShare","properties","ATOMIC_PERMISSIONS","NONE","READ","UPDATE","CREATE","DELETE","SHARE","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","openSharingDetails","shareRequestObject","handlerInput","suggestions","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","shareDetails","$emit","openShareDetailsForCustomSettings","setCustomPermissions","is_no_user","isNoUser","user","displayName","mixins","ShareRequests","ShareDetails","shares","linkShares","reshare","canReshare","isExternal","shareInputId","random","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","noResultText","getRecommendations","onSelected","asyncFind","debounceGetSuggestions","getSuggestions","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","User","Group","Team","Room","Guest","Deck","ScienceMesh","Email","perPage","exact","rawExactSuggestions","elem","rawSuggestions","exactSuggestions","filterOutExistingShares","formatForMultiselect","lookupEntry","lookupEnabled","condition","allSuggestions","nameCounts","desc","info","debounce","rawRecommendations","getCurrentUser","uid","sharesObj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","server","shareWithDescription","uuid","clear-search-on-blur","async","verbose","api","ratio","passwordSet","crypto","getRandomValues","client","getClient","SharesRequests","errors","saving","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","maxExpirationDateEnforced","isPasswordProtected","GeneratePassword","$delete","getNode","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","formatDateToString","UTC","getFullYear","getMonth","onExpirationChange","parsedDate","onNoteChange","onNoteSubmit","newNote","queueUpdate","onDelete","_len","propertyNames","_key","updatedShare","updateSuccessMessage","onSyncError","names","propertyEl","focusable","querySelector","debounceQueueUpdate","NcActionLink","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","removeShare","stopPropagation","emits","fillColor","_b","$attrs","DropdownIcon","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","NcButton","NcPopover","NcDateTime","ClockIcon","expiryTime","getTime","timeFormat","dateStyle","timeStyle","is","_g","handlers","ExternalShareAction","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","CloseIcon","PlusIcon","SharingEntryQuickShareSelect","ShareExpiryTime","shareCreationComplete","defaultExpirationDateEnabled","pending","ExternalLegacyLinkActions","ExternalLinkActions","ExternalShareActions","showQRCode","isEmailShareType","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","canTogglePasswordProtectedByTalkAvailable","hasUnsavedPassword","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","newPassword","shareLink","baseURL","getBaseUrl","actionsTooltip","externalLegacyLinkActions","externalLinkActions","advanced","isPasswordPolicyEnabled","canChangeHideDownload","shareAttributes","shareAttribute","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","component","pushNewLinkShare","update","newShare","copyButton","onPasswordChange","onPasswordDisable","onPasswordSubmit","onPasswordProtectedByTalkChange","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","onCancel","SharingEntryLink","minLength","actionIndex","canLinkShare","hasLinkShares","hasShares","addShare","awaitForShare","$nextTick","$children","DotsHorizontalIcon","tooltip","hasStatus","SharingEntry","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","Refresh","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","bundledPermissions","isFirstComponentLoad","creating","initialToken","loadingToken","userName","email","allPermissions","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","allSettled","at","onSave","getShareTypeIcon","EmailIcon","refInFor","InfoIcon","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","deleteEvent","expirationInterval","sharedWithMe","externalShares","sections","ShareTabSections","getSections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","isSharedWithMe","internalShareInputPlaceholder","externalShareInputPlaceholder","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","escape","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","activeElement","classList","className","menuId","emptyContentWithSections","section"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/1092-1092.js.map.license b/dist/1092-1092.js.map.license deleted file mode 120000 index 4c0ad2aebde..00000000000 --- a/dist/1092-1092.js.map.license +++ /dev/null @@ -1 +0,0 @@ -1092-1092.js.license
\ No newline at end of file diff --git a/dist/4589-4589.js b/dist/4589-4589.js new file mode 100644 index 00000000000..8975df5c389 --- /dev/null +++ b/dist/4589-4589.js @@ -0,0 +1,2 @@ +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[4589],{6835:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingInput.vue"],names:[],mappings:"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA",sourcesContent:['\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for="sharing-search-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const o=a},11672:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".emptyContentWithSections[data-v-872931a2]{margin:1rem auto}.sharingTab[data-v-872931a2]{position:relative;height:100%}.sharingTab__content[data-v-872931a2]{padding:0 6px}.sharingTab__content section[data-v-872931a2]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-872931a2]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-872931a2]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-872931a2]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-872931a2]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-872931a2]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-872931a2]{margin:44px 0}.hint-body[data-v-872931a2]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,aAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=a},17816:function(t){t.exports=function(){"use strict";function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}var e=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(e,i){var n;n=function(){return function e(i,n,r){function s(o,l){if(!n[o]){if(!i[o]){if(!l&&t)return t();if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};i[o][0].call(h.exports,(function(t){return s(i[o][1][t]||t)}),h,h.exports,e,i,n,r)}return n[o].exports}for(var a=t,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(t,e,i){e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},{}],2:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),s=[i-7],a=1;a<e-1;a++)s[a]=s[a-1]-r;return s.push(6),s.reverse()},i.getPositions=function(t){for(var e=[],n=i.getRowColCoords(t),r=n.length,s=0;s<r;s++)for(var a=0;a<r;a++)0===s&&0===a||0===s&&a===r-1||s===r-1&&0===a||e.push([n[s],n[a]]);return e}},{"./utils":21}],3:[function(t,e,i){var n=t("./mode"),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(t){this.mode=n.ALPHANUMERIC,this.data=t}s.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=s},{"./mode":14}],4:[function(t,e,i){function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n},{}],5:[function(t,e,i){var n=t("../utils/buffer");function r(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=n.alloc(t*t),this.reservedBit=n.alloc(t*t)}r.prototype.set=function(t,e,i,n){var r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=r},{"../utils/buffer":28}],6:[function(t,e,i){var n=t("../utils/buffer"),r=t("./mode");function s(t){this.mode=r.BYTE,this.data=n.from(t)}s.getBitsLength=function(t){return 8*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){for(var e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},e.exports=s},{"../utils/buffer":28,"./mode":14}],7:[function(t,e,i){var n=t("./error-correction-level"),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];i.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},i.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return s[4*(t-1)+0];case n.M:return s[4*(t-1)+1];case n.Q:return s[4*(t-1)+2];case n.H:return s[4*(t-1)+3];default:return}}},{"./error-correction-level":8}],8:[function(t,e,i){i.L={bit:1},i.M={bit:0},i.Q={bit:3},i.H={bit:2},i.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return i.L;case"m":case"medium":return i.M;case"q":case"quartile":return i.Q;case"h":case"high":return i.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return e}}},{}],9:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getPositions=function(t){var e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},{"./utils":21}],10:[function(t,e,i){var n=t("./utils"),r=n.getBCHDigit(1335);i.getEncodedBits=function(t,e){for(var i=t.bit<<3|e,s=i<<10;n.getBCHDigit(s)-r>=0;)s^=1335<<n.getBCHDigit(s)-r;return 21522^(i<<10|s)}},{"./utils":21}],11:[function(t,e,i){var n=t("../utils/buffer"),r=n.alloc(512),s=n.alloc(256);!function(){for(var t=1,e=0;e<255;e++)r[e]=t,s[t]=e,256&(t<<=1)&&(t^=285);for(e=255;e<512;e++)r[e]=r[e-255]}(),i.log=function(t){if(t<1)throw new Error("log("+t+")");return s[t]},i.exp=function(t){return r[t]},i.mul=function(t,e){return 0===t||0===e?0:r[s[t]+s[e]]}},{"../utils/buffer":28}],12:[function(t,e,i){var n=t("./mode"),r=t("./utils");function s(t){this.mode=n.KANJI,this.data=t}s.getBitsLength=function(t){return 13*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e<this.data.length;e++){var i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},e.exports=s},{"./mode":14,"./utils":21}],13:[function(t,e,i){i.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var n=3,r=3,s=40,a=10;function o(t,e,n){switch(t){case i.Patterns.PATTERN000:return(e+n)%2==0;case i.Patterns.PATTERN001:return e%2==0;case i.Patterns.PATTERN010:return n%3==0;case i.Patterns.PATTERN011:return(e+n)%3==0;case i.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2==0;case i.Patterns.PATTERN101:return e*n%2+e*n%3==0;case i.Patterns.PATTERN110:return(e*n%2+e*n%3)%2==0;case i.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}i.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},i.from=function(t){return i.isValid(t)?parseInt(t,10):void 0},i.getPenaltyN1=function(t){for(var e=t.size,i=0,r=0,s=0,a=null,o=null,l=0;l<e;l++){r=s=0,a=o=null;for(var c=0;c<e;c++){var h=t.get(l,c);h===a?r++:(r>=5&&(i+=n+(r-5)),a=h,r=1),(h=t.get(c,l))===o?s++:(s>=5&&(i+=n+(s-5)),o=h,s=1)}r>=5&&(i+=n+(r-5)),s>=5&&(i+=n+(s-5))}return i},i.getPenaltyN2=function(t){for(var e=t.size,i=0,n=0;n<e-1;n++)for(var s=0;s<e-1;s++){var a=t.get(n,s)+t.get(n,s+1)+t.get(n+1,s)+t.get(n+1,s+1);4!==a&&0!==a||i++}return i*r},i.getPenaltyN3=function(t){for(var e=t.size,i=0,n=0,r=0,a=0;a<e;a++){n=r=0;for(var o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return i*s},i.getPenaltyN4=function(t){for(var e=0,i=t.data.length,n=0;n<i;n++)e+=t.data[n];return Math.abs(Math.ceil(100*e/i/5)-10)*a},i.applyMask=function(t,e){for(var i=e.size,n=0;n<i;n++)for(var r=0;r<i;r++)e.isReserved(r,n)||e.xor(r,n,o(t,r,n))},i.getBestMask=function(t,e){for(var n=Object.keys(i.Patterns).length,r=0,s=1/0,a=0;a<n;a++){e(a),i.applyMask(a,t);var o=i.getPenaltyN1(t)+i.getPenaltyN2(t)+i.getPenaltyN3(t)+i.getPenaltyN4(t);i.applyMask(a,t),o<s&&(s=o,r=a)}return r}},{}],14:[function(t,e,i){var n=t("./version-check"),r=t("./regex");i.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},i.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},i.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},i.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},i.MIXED={bit:-1},i.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},i.getBestModeForData=function(t){return r.testNumeric(t)?i.NUMERIC:r.testAlphanumeric(t)?i.ALPHANUMERIC:r.testKanji(t)?i.KANJI:i.BYTE},i.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},i.isValid=function(t){return t&&t.bit&&t.ccBits},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return i.NUMERIC;case"alphanumeric":return i.ALPHANUMERIC;case"kanji":return i.KANJI;case"byte":return i.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return e}}},{"./regex":19,"./version-check":22}],15:[function(t,e,i){var n=t("./mode");function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);var r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},e.exports=r},{"./mode":14}],16:[function(t,e,i){var n=t("../utils/buffer"),r=t("./galois-field");i.mul=function(t,e){for(var i=n.alloc(t.length+e.length-1),s=0;s<t.length;s++)for(var a=0;a<e.length;a++)i[s+a]^=r.mul(t[s],e[a]);return i},i.mod=function(t,e){for(var i=n.from(t);i.length-e.length>=0;){for(var s=i[0],a=0;a<e.length;a++)i[a]^=r.mul(e[a],s);for(var o=0;o<i.length&&0===i[o];)o++;i=i.slice(o)}return i},i.generateECPolynomial=function(t){for(var e=n.from([1]),s=0;s<t;s++)e=i.mul(e,[1,r.exp(s)]);return e}},{"../utils/buffer":28,"./galois-field":11}],17:[function(t,e,i){var n=t("../utils/buffer"),r=t("./utils"),s=t("./error-correction-level"),a=t("./bit-buffer"),o=t("./bit-matrix"),l=t("./alignment-pattern"),c=t("./finder-pattern"),h=t("./mask-pattern"),u=t("./error-correction-code"),d=t("./reed-solomon-encoder"),p=t("./version"),f=t("./format-info"),g=t("./mode"),A=t("./segments"),m=t("isarray");function v(t,e,i){var n,r,s=t.size,a=f.getEncodedBits(e,i);for(n=0;n<15;n++)r=1==(a>>n&1),n<6?t.set(n,8,r,!0):n<8?t.set(n+1,8,r,!0):t.set(s-15+n,8,r,!0),n<8?t.set(8,s-n-1,r,!0):n<9?t.set(8,15-n-1+1,r,!0):t.set(8,15-n-1,r,!0);t.set(s-8,8,1,!0)}function y(t,e,i){var s=new a;i.forEach((function(e){s.put(e.mode.bit,4),s.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(s)}));var o=8*(r.getSymbolTotalCodewords(t)-u.getTotalCodewordsCount(t,e));for(s.getLengthInBits()+4<=o&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(0);for(var l=(o-s.getLengthInBits())/8,c=0;c<l;c++)s.put(c%2?17:236,8);return function(t,e,i){for(var s=r.getSymbolTotalCodewords(e),a=s-u.getTotalCodewordsCount(e,i),o=u.getBlocksCount(e,i),l=o-s%o,c=Math.floor(s/o),h=Math.floor(a/o),p=h+1,f=c-h,g=new d(f),A=0,m=new Array(o),v=new Array(o),y=0,C=n.from(t.buffer),w=0;w<o;w++){var b=w<l?h:p;m[w]=C.slice(A,A+b),v[w]=g.encode(m[w]),A+=b,y=Math.max(y,b)}var _,E,x=n.alloc(s),S=0;for(_=0;_<y;_++)for(E=0;E<o;E++)_<m[E].length&&(x[S++]=m[E][_]);for(_=0;_<f;_++)for(E=0;E<o;E++)x[S++]=v[E][_];return x}(s,t,e)}function C(t,e,i,n){var s;if(m(t))s=A.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");var a=e;if(!a){var u=A.rawSplit(t);a=p.getBestVersionForData(u,i)}s=A.fromString(t,a||40)}var d=p.getBestVersionForData(s,i);if(!d)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<d)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+d+".\n")}else e=d;var f=y(e,i,s),g=r.getSymbolSize(e),C=new o(g);return function(t,e){for(var i=t.size,n=c.getPositions(e),r=0;r<n.length;r++)for(var s=n[r][0],a=n[r][1],o=-1;o<=7;o++)if(!(s+o<=-1||i<=s+o))for(var l=-1;l<=7;l++)a+l<=-1||i<=a+l||(o>=0&&o<=6&&(0===l||6===l)||l>=0&&l<=6&&(0===o||6===o)||o>=2&&o<=4&&l>=2&&l<=4?t.set(s+o,a+l,!0,!0):t.set(s+o,a+l,!1,!0))}(C,e),function(t){for(var e=t.size,i=8;i<e-8;i++){var n=i%2==0;t.set(i,6,n,!0),t.set(6,i,n,!0)}}(C),function(t,e){for(var i=l.getPositions(e),n=0;n<i.length;n++)for(var r=i[n][0],s=i[n][1],a=-2;a<=2;a++)for(var o=-2;o<=2;o++)-2===a||2===a||-2===o||2===o||0===a&&0===o?t.set(r+a,s+o,!0,!0):t.set(r+a,s+o,!1,!0)}(C,e),v(C,i,0),e>=7&&function(t,e){for(var i,n,r,s=t.size,a=p.getEncodedBits(e),o=0;o<18;o++)i=Math.floor(o/3),n=o%3+s-8-3,r=1==(a>>o&1),t.set(i,n,r,!0),t.set(n,i,r,!0)}(C,e),function(t,e){for(var i=t.size,n=-1,r=i-1,s=7,a=0,o=i-1;o>0;o-=2)for(6===o&&o--;;){for(var l=0;l<2;l++)if(!t.isReserved(r,o-l)){var c=!1;a<e.length&&(c=1==(e[a]>>>s&1)),t.set(r,o-l,c),-1==--s&&(a++,s=7)}if((r+=n)<0||i<=r){r-=n,n=-n;break}}}(C,f),isNaN(n)&&(n=h.getBestMask(C,v.bind(null,C,i))),h.applyMask(n,C),v(C,i,n),{modules:C,version:e,errorCorrectionLevel:i,maskPattern:n,segments:s}}i.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");var i,n,a=s.M;return void 0!==e&&(a=s.from(e.errorCorrectionLevel,s.M),i=p.from(e.version),n=h.from(e.maskPattern),e.toSJISFunc&&r.setToSJISFunction(e.toSJISFunc)),C(t,i,a,n)}},{"../utils/buffer":28,"./alignment-pattern":2,"./bit-buffer":4,"./bit-matrix":5,"./error-correction-code":7,"./error-correction-level":8,"./finder-pattern":9,"./format-info":10,"./mask-pattern":13,"./mode":14,"./reed-solomon-encoder":18,"./segments":20,"./utils":21,"./version":23,isarray:33}],18:[function(t,e,i){var n=t("../utils/buffer"),r=t("./polynomial"),s=t("buffer").Buffer;function a(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}a.prototype.initialize=function(t){this.degree=t,this.genPoly=r.generateECPolynomial(this.degree)},a.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");var e=n.alloc(this.degree),i=s.concat([t,e],t.length+this.degree),a=r.mod(i,this.genPoly),o=this.degree-a.length;if(o>0){var l=n.alloc(this.degree);return a.copy(l,o),l}return a},e.exports=a},{"../utils/buffer":28,"./polynomial":16,buffer:30}],19:[function(t,e,i){var n="[0-9]+",r="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",s="(?:(?![A-Z0-9 $%*+\\-./:]|"+(r=r.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";i.KANJI=new RegExp(r,"g"),i.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),i.BYTE=new RegExp(s,"g"),i.NUMERIC=new RegExp(n,"g"),i.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var a=new RegExp("^"+r+"$"),o=new RegExp("^"+n+"$"),l=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");i.testKanji=function(t){return a.test(t)},i.testNumeric=function(t){return o.test(t)},i.testAlphanumeric=function(t){return l.test(t)}},{}],20:[function(t,e,i){var n=t("./mode"),r=t("./numeric-data"),s=t("./alphanumeric-data"),a=t("./byte-data"),o=t("./kanji-data"),l=t("./regex"),c=t("./utils"),h=t("dijkstrajs");function u(t){return unescape(encodeURIComponent(t)).length}function d(t,e,i){for(var n,r=[];null!==(n=t.exec(i));)r.push({data:n[0],index:n.index,mode:e,length:n[0].length});return r}function p(t){var e,i,r=d(l.NUMERIC,n.NUMERIC,t),s=d(l.ALPHANUMERIC,n.ALPHANUMERIC,t);return c.isKanjiModeEnabled()?(e=d(l.BYTE,n.BYTE,t),i=d(l.KANJI,n.KANJI,t)):(e=d(l.BYTE_KANJI,n.BYTE,t),i=[]),r.concat(s,e,i).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function f(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return s.getBitsLength(t);case n.KANJI:return o.getBitsLength(t);case n.BYTE:return a.getBitsLength(t)}}function g(t,e){var i,l=n.getBestModeForData(t);if((i=n.from(e,l))!==n.BYTE&&i.bit<l.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(l));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new s(t);case n.KANJI:return new o(t);case n.BYTE:return new a(t)}}i.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(g(e,null)):e.data&&t.push(g(e.data,e.mode)),t}),[])},i.fromString=function(t,e){for(var r=function(t,e){for(var i={},r={start:{}},s=["start"],a=0;a<t.length;a++){for(var o=t[a],l=[],c=0;c<o.length;c++){var h=o[c],u=""+a+c;l.push(u),i[u]={node:h,lastCount:0},r[u]={};for(var d=0;d<s.length;d++){var p=s[d];i[p]&&i[p].node.mode===h.mode?(r[p][u]=f(i[p].lastCount+h.length,h.mode)-f(i[p].lastCount,h.mode),i[p].lastCount+=h.length):(i[p]&&(i[p].lastCount=h.length),r[p][u]=f(h.length,h.mode)+4+n.getCharCountIndicator(h.mode,e))}}s=l}for(d=0;d<s.length;d++)r[s[d]].end=0;return{map:r,table:i}}(function(t){for(var e=[],i=0;i<t.length;i++){var r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:u(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:u(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),e),s=h.find_path(r.map,"start","end"),a=[],o=1;o<s.length-1;o++)a.push(r.table[s[o]].node);return i.fromArray(a.reduce((function(t,e){var i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},i.rawSplit=function(t){return i.fromArray(p(t,c.isKanjiModeEnabled()))}},{"./alphanumeric-data":3,"./byte-data":6,"./kanji-data":12,"./mode":14,"./numeric-data":15,"./regex":19,"./utils":21,dijkstrajs:31}],21:[function(t,e,i){var n,r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];i.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},i.getSymbolTotalCodewords=function(t){return r[t]},i.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},i.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');n=t},i.isKanjiModeEnabled=function(){return void 0!==n},i.toSJIS=function(t){return n(t)}},{}],22:[function(t,e,i){i.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},{}],23:[function(t,e,i){var n=t("./utils"),r=t("./error-correction-code"),s=t("./error-correction-level"),a=t("./mode"),o=t("./version-check"),l=t("isarray"),c=n.getBCHDigit(7973);function h(t,e){return a.getCharCountIndicator(t,e)+4}function u(t,e){var i=0;return t.forEach((function(t){var n=h(t.mode,e);i+=n+t.getBitsLength()})),i}i.from=function(t,e){return o.isValid(t)?parseInt(t,10):e},i.getCapacity=function(t,e,i){if(!o.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=a.BYTE);var s=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===a.MIXED)return s;var l=s-h(i,t);switch(i){case a.NUMERIC:return Math.floor(l/10*3);case a.ALPHANUMERIC:return Math.floor(l/11*2);case a.KANJI:return Math.floor(l/13);case a.BYTE:default:return Math.floor(l/8)}},i.getBestVersionForData=function(t,e){var n,r=s.from(e,s.M);if(l(t)){if(t.length>1)return function(t,e){for(var n=1;n<=40;n++)if(u(t,n)<=i.getCapacity(n,e,a.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,e,n){for(var r=1;r<=40;r++)if(e<=i.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},i.getEncodedBits=function(t){if(!o.isValid(t)||t<7)throw new Error("Invalid QR Code version");for(var e=t<<12;n.getBCHDigit(e)-c>=0;)e^=7973<<n.getBCHDigit(e)-c;return t<<12|e}},{"./error-correction-code":7,"./error-correction-level":8,"./mode":14,"./utils":21,"./version-check":22,isarray:33}],24:[function(t,e,i){var n=t("./can-promise"),r=t("./core/qrcode"),s=t("./renderer/canvas"),a=t("./renderer/svg-tag.js");function o(t,e,i,s,a){var o=[].slice.call(arguments,1),l=o.length,c="function"==typeof o[l-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=e,e=s=void 0):2!==l||e.getContext||(s=i,i=e,e=void 0),new Promise((function(n,a){try{var o=r.create(i,s);n(t(o,e,s))}catch(t){a(t)}}))}if(l<2)throw new Error("Too few arguments provided");2===l?(a=i,i=e,e=s=void 0):3===l&&(e.getContext&&void 0===a?(a=s,s=void 0):(a=s,s=i,i=e,e=void 0));try{var h=r.create(i,s);a(null,t(h,e,s))}catch(t){a(t)}}i.create=r.create,i.toCanvas=o.bind(null,s.render),i.toDataURL=o.bind(null,s.renderToDataURL),i.toString=o.bind(null,(function(t,e,i){return a.render(t,i)}))},{"./can-promise":1,"./core/qrcode":17,"./renderer/canvas":25,"./renderer/svg-tag.js":26}],25:[function(t,e,i){var n=t("./utils");i.render=function(t,e,i){var r=i,s=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);var a=n.getImageWidth(t.modules.size,r),o=s.getContext("2d"),l=o.createImageData(a,a);return n.qrToImageData(l.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(o,s,a),o.putImageData(l,0,0),s},i.renderToDataURL=function(t,e,n){var r=n;void 0!==r||e&&e.getContext||(r=e,e=void 0),r||(r={});var s=i.render(t,e,r),a=r.type||"image/png",o=r.rendererOpts||{};return s.toDataURL(a,o.quality)}},{"./utils":27}],26:[function(t,e,i){var n=t("./utils");function r(t,e){var i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function s(t,e,i){var n=t+e;return void 0!==i&&(n+=" "+i),n}i.render=function(t,e,i){var a=n.getOptions(e),o=t.modules.size,l=t.modules.data,c=o+2*a.margin,h=a.color.light.a?"<path "+r(a.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",u="<path "+r(a.color.dark,"stroke")+' d="'+function(t,e,i){for(var n="",r=0,a=!1,o=0,l=0;l<t.length;l++){var c=Math.floor(l%e),h=Math.floor(l/e);c||a||(a=!0),t[l]?(o++,l>0&&c>0&&t[l-1]||(n+=a?s("M",c+i,.5+h+i):s("m",r,0),r=0,a=!1),c+1<e&&t[l+1]||(n+=s("h",o),o=0)):r++}return n}(l,o,a.margin)+'"/>',d='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(a.width?'width="'+a.width+'" height="'+a.width+'" ':"")+d+' shape-rendering="crispEdges">'+h+u+"</svg>\n";return"function"==typeof i&&i(null,p),p}},{"./utils":27}],27:[function(t,e,i){function n(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");var e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");var i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}i.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:i,scale:i?4:r,margin:e,color:{dark:n(t.color.dark||"#000000ff"),light:n(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},i.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},i.getImageWidth=function(t,e){var n=i.getScale(t,e);return Math.floor((t+2*e.margin)*n)},i.qrToImageData=function(t,e,n){for(var r=e.modules.size,s=e.modules.data,a=i.getScale(r,n),o=Math.floor((r+2*n.margin)*a),l=n.margin*a,c=[n.color.light,n.color.dark],h=0;h<o;h++)for(var u=0;u<o;u++){var d=4*(h*o+u),p=n.color.light;h>=l&&u>=l&&h<o-l&&u<o-l&&(p=c[s[Math.floor((h-l)/a)*r+Math.floor((u-l)/a)]?1:0]),t[d++]=p.r,t[d++]=p.g,t[d++]=p.b,t[d]=p.a}}},{}],28:[function(t,e,i){var n=t("isarray");s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}();var r=s.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function s(t,e,i){return s.TYPED_ARRAY_SUPPORT||this instanceof s?"number"==typeof t?l(this,t):function(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");var r;return r=void 0===i&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n),s.TYPED_ARRAY_SUPPORT?r.__proto__=s.prototype:r=c(t,r),r}(t,e,i,n):"string"==typeof e?function(t,e){var i=0|u(e),n=o(t,i),r=n.write(e);return r!==i&&(n=n.slice(0,r)),n}(t,e):function(t,e){if(s.isBuffer(e)){var i=0|a(e.length),n=o(t,i);return 0===n.length||e.copy(n,0,0,i),n}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?o(t,0):c(t,e);if("Buffer"===e.type&&Array.isArray(e.data))return c(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}(this,t,e,i):new s(t,e,i)}function a(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function o(t,e){var i;return s.TYPED_ARRAY_SUPPORT?(i=new Uint8Array(e)).__proto__=s.prototype:(null===(i=t)&&(i=new s(e)),i.length=e),i}function l(t,e){var i=o(t,e<0?0:0|a(e));if(!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)i[n]=0;return i}function c(t,e){for(var i=e.length<0?0:0|a(e.length),n=o(t,i),r=0;r<i;r+=1)n[r]=255&e[r];return n}function h(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function u(t){return s.isBuffer(t)?t.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)?t.byteLength:("string"!=typeof t&&(t=""+t),0===t.length?0:h(t).length)}s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),s.prototype.write=function(t,e,i){void 0===e||void 0===i&&"string"==typeof e?(i=this.length,e=0):isFinite(e)&&(e|=0,isFinite(i)?i|=0:i=void 0);var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(t,e,i,n){return function(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}(h(e,t.length-i),t,i,n)}(this,t,e,i)},s.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t),s.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=s.prototype;else{var r=e-t;i=new s(r,void 0);for(var a=0;a<r;++a)i[a]=this[a+t]}return i},s.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,a=n-i;if(this===t&&i<e&&e<n)for(r=a-1;r>=0;--r)t[r+e]=this[r+i];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<a;++r)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+a),e);return a},s.prototype.fill=function(t,e,i){if("string"==typeof t){if("string"==typeof e?(e=0,i=this.length):"string"==typeof i&&(i=this.length),1===t.length){var n=t.charCodeAt(0);n<256&&(t=n)}}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var r;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(r=e;r<i;++r)this[r]=t;else{var a=s.isBuffer(t)?t:new s(t),o=a.length;for(r=0;r<i-e;++r)this[r+e]=a[r%o]}return this},s.concat=function(t,e){if(!n(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return o(null,0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var r=l(null,e),a=0;for(i=0;i<t.length;++i){var c=t[i];if(!s.isBuffer(c))throw new TypeError('"list" argument must be an Array of Buffers');c.copy(r,a),a+=c.length}return r},s.byteLength=u,s.prototype._isBuffer=!0,s.isBuffer=function(t){return!(null==t||!t._isBuffer)},e.exports.alloc=function(t){var e=new s(t);return e.fill(0),e},e.exports.from=function(t){return new s(t)}},{isarray:33}],29:[function(t,e,i){i.byteLength=function(t){var e=l(t),i=e[0],n=e[1];return 3*(i+n)/4-n},i.toByteArray=function(t){var e,i,n=l(t),a=n[0],o=n[1],c=new s(function(t,e,i){return 3*(e+i)/4-i}(0,a,o)),h=0,u=o>0?a-4:a;for(i=0;i<u;i+=4)e=r[t.charCodeAt(i)]<<18|r[t.charCodeAt(i+1)]<<12|r[t.charCodeAt(i+2)]<<6|r[t.charCodeAt(i+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===o&&(e=r[t.charCodeAt(i)]<<2|r[t.charCodeAt(i+1)]>>4,c[h++]=255&e),1===o&&(e=r[t.charCodeAt(i)]<<10|r[t.charCodeAt(i+1)]<<4|r[t.charCodeAt(i+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},i.fromByteArray=function(t){for(var e,i=t.length,r=i%3,s=[],a=16383,o=0,l=i-r;o<l;o+=a)s.push(c(t,o,o+a>l?l:o+a));return 1===r?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),s.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=a[o],r[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var r,s=[],a=e;a<i;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(n[(o=r)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);var o;return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},{}],30:[function(t,e,i){var n=t("base64-js"),r=t("ieee754"),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;i.Buffer=l,i.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},i.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,i){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return c(t,e,i)}function c(t,e,i){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var i=0|f(t,e),n=o(i),r=n.write(t,e);return r!==i&&(n=n.slice(0,r)),n}(t,e);if(ArrayBuffer.isView(t))return d(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(V(t,ArrayBuffer)||t&&V(t.buffer,ArrayBuffer))return function(t,e,i){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,e):new Uint8Array(t,e,i),Object.setPrototypeOf(n,l.prototype),n}(t,e,i);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return l.from(n,e,i);var r=function(t){if(l.isBuffer(t)){var e=0|p(t.length),i=o(e);return 0===i.length||t.copy(i,0,0,e),i}return void 0!==t.length?"number"!=typeof t.length||j(t.length)?o(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return h(t),o(t<0?0:0|p(t))}function d(t){for(var e=t.length<0?0:0|p(t.length),i=o(e),n=0;n<e;n+=1)i[n]=255&t[n];return i}function p(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function f(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||V(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var i=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return $(t).length;default:if(r)return n?-1:U(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return N(this,e,i);case"utf8":case"utf-8":return S(this,e,i);case"ascii":return k(this,e,i);case"latin1":case"binary":return T(this,e,i);case"base64":return x(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function A(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function m(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),j(i=+i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,i,n,r);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):v(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(t,e,i,n,r){var s,a=1,o=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,i/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(s=i;s<o;s++)if(c(t,s)===c(e,-1===h?0:s-h)){if(-1===h&&(h=s),s-h+1===l)return h*a}else-1!==h&&(s-=s-h),h=-1}else for(i+l>o&&(i=o-l),s=i;s>=0;s--){for(var u=!0,d=0;d<l;d++)if(c(t,s+d)!==c(e,d)){u=!1;break}if(u)return s}return-1}function y(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n))>r&&(n=r):n=r;var s=e.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(e.substr(2*a,2),16);if(j(o))return a;t[i+a]=o}return a}function C(t,e,i,n){return F(U(e,t.length-i),t,i,n)}function w(t,e,i,n){return F(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,n)}function b(t,e,i,n){return w(t,e,i,n)}function _(t,e,i,n){return F($(e),t,i,n)}function E(t,e,i,n){return F(function(t,e){for(var i,n,r,s=[],a=0;a<t.length&&!((e-=2)<0);++a)n=(i=t.charCodeAt(a))>>8,r=i%256,s.push(r),s.push(n);return s}(e,t.length-i),t,i,n)}function x(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function S(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var s,a,o,l,c=t[r],h=null,u=c>239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[r+1]))&&(l=(31&c)<<6|63&s)>127&&(h=l);break;case 3:s=t[r+1],a=t[r+2],128==(192&s)&&128==(192&a)&&(l=(15&c)<<12|(63&s)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:s=t[r+1],a=t[r+2],o=t[r+3],128==(192&s)&&128==(192&a)&&128==(192&o)&&(l=(15&c)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);for(var i="",n=0;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=I));return i}(n)}i.kMaxLength=a,l.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),l.poolSize=8192,l.from=function(t,e,i){return c(t,e,i)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,i){return function(t,e,i){return h(t),t<=0?o(t):void 0!==e?"string"==typeof i?o(t).fill(e,i):o(t).fill(e):o(t)}(t,e,i)},l.allocUnsafe=function(t){return u(t)},l.allocUnsafeSlow=function(t){return u(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var i=t.length,n=e.length,r=0,s=Math.min(i,n);r<s;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var n=l.allocUnsafe(e),r=0;for(i=0;i<t.length;++i){var s=t[i];if(V(s,Uint8Array)&&(s=l.from(s)),!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,r),r+=s.length}return n},l.byteLength=f,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?S(this,0,t):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){var t="",e=i.INSPECT_MAX_BYTES;return t=this.toString("hex",0,e).replace(/(.{2})/g,"$1 ").trim(),this.length>e&&(t+=" ... "),"<Buffer "+t+">"},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,i,n,r){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),o=Math.min(s,a),c=this.slice(n,r),h=t.slice(e,i),u=0;u<o;++u)if(c[u]!==h[u]){s=c[u],a=h[u];break}return s<a?-1:a<s?1:0},l.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},l.prototype.indexOf=function(t,e,i){return m(this,t,e,i,!0)},l.prototype.lastIndexOf=function(t,e,i){return m(this,t,e,i,!1)},l.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return y(this,t,e,i);case"utf8":case"utf-8":return C(this,t,e,i);case"ascii":return w(this,t,e,i);case"latin1":case"binary":return b(this,t,e,i);case"base64":return _(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function k(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(127&t[r]);return n}function T(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(t[r]);return n}function N(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",s=e;s<i;++s)r+=z[t[s]];return r}function D(t,e,i){for(var n=t.slice(e,i),r="",s=0;s<n.length;s+=2)r+=String.fromCharCode(n[s]+256*n[s+1]);return r}function P(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,i,n,r,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<s)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function B(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function L(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function O(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i=this.length;(t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,l.prototype),n},l.prototype.readUIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n},l.prototype.readUIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s<i&&(r*=256);)this[e+s]=t/r&255;return e+i},l.prototype.writeUIntBE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,s=1;for(this[e+r]=255&t;--r>=0&&(s*=256);)this[e+r]=t/s&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=0,a=1,o=0;for(this[e]=255&t;++s<i&&(a*=256);)t<0&&0===o&&0!==this[e+s-1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=i-1,a=1,o=0;for(this[e+s]=255&t;--s>=0&&(a*=256);)t<0&&0===o&&0!==this[e+s+1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,i){return L(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return L(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return O(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return O(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r=n-i;if(this===t&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,i,n);else if(this===t&&i<e&&e<n)for(var s=r-1;s>=0;--s)t[s+e]=this[s+i];else Uint8Array.prototype.set.call(t,this.subarray(i,n),e);return r},l.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var r=t.charCodeAt(0);("utf8"===n&&r<128||"latin1"===n)&&(t=r)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var s;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s<i;++s)this[s]=t;else{var a=l.isBuffer(t)?t:l.from(t,n),o=a.length;if(0===o)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(s=0;s<i-e;++s)this[s+e]=a[s%o]}return this};var M=/[^+/0-9A-Za-z-_]/g;function U(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function $(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}function V(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function j(t){return t!=t}var z=function(){for(var t="0123456789abcdef",e=new Array(256),i=0;i<16;++i)for(var n=16*i,r=0;r<16;++r)e[n+r]=t[i]+t[r];return e}()},{"base64-js":29,ieee754:32}],31:[function(t,e,i){var n={single_source_shortest_paths:function(t,e,i){var r={},s={};s[e]=0;var a,o,l,c,h,u,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in o=(a=p.pop()).value,c=a.cost,h=t[o]||{})h.hasOwnProperty(l)&&(u=c+h[l],d=s[l],(void 0===s[l]||d>u)&&(s[l]=u,p.push(l,u),r[l]=o));if(void 0!==i&&void 0===s[i]){var f=["Could not find a path from ",e," to ",i,"."].join("");throw new Error(f)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,e,i){var r=n.single_source_shortest_paths(t,e,i);return n.extract_shortest_path_from_predecessor_list(r,i)},PriorityQueue:{make:function(t){var e,i=n.PriorityQueue,r={};for(e in t=t||{},i)i.hasOwnProperty(e)&&(r[e]=i[e]);return r.queue=[],r.sorter=t.sorter||i.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)},{}],32:[function(t,e,i){i.read=function(t,e,i,n,r){var s,a,o=8*r-n-1,l=(1<<o)-1,c=l>>1,h=-7,u=i?r-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=o;h>0;s=256*s+t[e+u],u+=d,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=n;h>0;a=256*a+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),s-=c}return(p?-1:1)*a*Math.pow(2,s-n)},i.write=function(t,e,i,n,r,s){var a,o,l,c=8*s-r-1,h=(1<<c)-1,u=h>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=h?(o=0,a=h):a+u>=1?(o=(e*l-1)*Math.pow(2,r),a+=u):(o=e*Math.pow(2,u-1)*Math.pow(2,r),a=0));r>=8;t[i+p]=255&o,p+=f,o/=256,r-=8);for(a=a<<r|o,c+=r;c>0;t[i+p]=255&a,p+=f,a/=256,c-=8);t[i+p-f]|=128*g}},{}],33:[function(t,e,i){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}]},{},[24])(24)},e.exports=n()}));return{name:"qrcode",props:{value:null,options:Object,tag:{type:String,default:"canvas"}},render:function(t){return t(this.tag,this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.$el&&this.generate()}}},methods:{generate:function(){var t=this,i=this.options,n=this.tag,r=String(this.value);"canvas"===n?e.toCanvas(this.$el,r,i,(function(t){if(t)throw t})):"img"===n?e.toDataURL(r,i,(function(e,i){if(e)throw e;t.$el.src=i})):e.toString(r,i,(function(e,i){if(e)throw e;t.$el.innerHTML=i}))}},mounted:function(){this.generate()}}}()},27514:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},27518:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},35810:(t,e,i)=>{"use strict";i.d(e,{Al:()=>n.r,H4:()=>n.c,My:()=>u,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,lJ:()=>n.d,pt:()=>n.F,ur:()=>d,v7:()=>c});var n=i(68251),r=(i(43627),i(53334)),s=i(380),a=i(65606);Error;const o=["B","KB","MB","GB","TB","PB"],l=["B","KiB","MiB","GiB","TiB","PiB"];function c(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let s=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;s=Math.min((i?l.length:o.length)-1,s);const a=i?l[s]:o[s];let c=(t/Math.pow(n?1e3:1024,s)).toFixed(1);return!0===e&&0===s?("0.0"!==c?"< 1 ":"0 ")+(i?l[1]:o[1]):(c=s<2?parseFloat(c).toFixed(0):parseFloat(c).toLocaleString((0,r.lO)()),c+" "+a)}function h(t){return t instanceof Date?t.toISOString():String(t)}function u(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),s=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[r,a]of e.entries()){const e=s.compare(h(a(t)),h(a(i)));if(0!==e)return e*n[r]}return 0}))}function d(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return u(t,[...i.sortFavoritesFirst?[t=>1!==t.attributes?.favorite]:[],...i.sortFoldersFirst?[t=>"folder"!==t.type]:[],..."basename"!==i.sortingMode?[t=>t[i.sortingMode]]:[],t=>{return(e=t.displayname||t.attributes?.displayname||t.basename).lastIndexOf(".")>0?e.slice(0,e.lastIndexOf(".")):e;var e},t=>t.basename],[...i.sortFavoritesFirst?["asc"]:[],...i.sortFoldersFirst?["asc"]:[],..."mtime"===i.sortingMode?["asc"===i.sortingOrder?"desc":"asc"]:[],..."mtime"!==i.sortingMode&&"basename"!==i.sortingMode?[i.sortingOrder]:[],i.sortingOrder,i.sortingOrder])}var p,f,g={},A={};function m(){return p||(p=1,function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+i+"$");t.isExist=function(t){return void 0!==t},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,i){if(e){const n=Object.keys(e),r=n.length;for(let s=0;s<r;s++)t[n[s]]="strict"===i?[e[n[s]]]:e[n[s]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){return!(null==n.exec(t))},t.getAllMatches=function(t,e){const i=[];let n=e.exec(t);for(;n;){const r=[];r.startIndex=e.lastIndex-n[0].length;const s=n.length;for(let t=0;t<s;t++)r.push(n[t]);i.push(r),n=e.exec(t)}return i},t.nameRegexp=i}(A)),A}function v(){if(f)return g;f=1;const t=m(),e={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function n(t,e){const i=e;for(;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{const n=t.substr(i,e-i);if(e>5&&"xml"===n)return u("InvalidXml","XML declaration allowed only at the start of the document.",p(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function r(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e<t.length;e++)if("-"===t[e]&&"-"===t[e+1]&&">"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let i=1;for(e+=8;e<t.length;e++)if("<"===t[e])i++;else if(">"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e<t.length;e++)if("]"===t[e]&&"]"===t[e+1]&&">"===t[e+2]){e+=2;break}return e}g.validate=function(s,a){a=Object.assign({},e,a);const l=[];let d=!1,f=!1;"\ufeff"===s[0]&&(s=s.substr(1));for(let e=0;e<s.length;e++)if("<"===s[e]&&"?"===s[e+1]){if(e+=2,e=n(s,e),e.err)return e}else{if("<"!==s[e]){if(i(s[e]))continue;return u("InvalidChar","char '"+s[e]+"' is not expected.",p(s,e))}{let A=e;if(e++,"!"===s[e]){e=r(s,e);continue}{let m=!1;"/"===s[e]&&(m=!0,e++);let v="";for(;e<s.length&&">"!==s[e]&&" "!==s[e]&&"\t"!==s[e]&&"\n"!==s[e]&&"\r"!==s[e];e++)v+=s[e];if(v=v.trim(),"/"===v[v.length-1]&&(v=v.substring(0,v.length-1),e--),g=v,!t.isName(g)){let t;return t=0===v.trim().length?"Invalid space after '<'.":"Tag '"+v+"' is an invalid name.",u("InvalidTag",t,p(s,e))}const y=o(s,e);if(!1===y)return u("InvalidAttr","Attributes for '"+v+"' have open quote.",p(s,e));let C=y.value;if(e=y.index,"/"===C[C.length-1]){const t=e-C.length;C=C.substring(0,C.length-1);const i=c(C,a);if(!0!==i)return u(i.err.code,i.err.msg,p(s,t+i.err.line));d=!0}else if(m){if(!y.tagClosed)return u("InvalidTag","Closing tag '"+v+"' doesn't have proper closing.",p(s,e));if(C.trim().length>0)return u("InvalidTag","Closing tag '"+v+"' can't have attributes or invalid starting.",p(s,A));if(0===l.length)return u("InvalidTag","Closing tag '"+v+"' has not been opened.",p(s,A));{const t=l.pop();if(v!==t.tagName){let e=p(s,t.tagStartPos);return u("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+e.line+", col "+e.col+") instead of closing tag '"+v+"'.",p(s,A))}0==l.length&&(f=!0)}}else{const t=c(C,a);if(!0!==t)return u(t.err.code,t.err.msg,p(s,e-C.length+t.err.line));if(!0===f)return u("InvalidXml","Multiple possible root nodes found.",p(s,e));-1!==a.unpairedTags.indexOf(v)||l.push({tagName:v,tagStartPos:A}),d=!0}for(e++;e<s.length;e++)if("<"===s[e]){if("!"===s[e+1]){e++,e=r(s,e);continue}if("?"!==s[e+1])break;if(e=n(s,++e),e.err)return e}else if("&"===s[e]){const t=h(s,e);if(-1==t)return u("InvalidChar","char '&' is not expected.",p(s,e));e=t}else if(!0===f&&!i(s[e]))return u("InvalidXml","Extra text at the end",p(s,e));"<"===s[e]&&e--}}}var g;return d?1==l.length?u("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",p(s,l[0].tagStartPos)):!(l.length>0)||u("InvalidXml","Invalid '"+JSON.stringify(l.map((t=>t.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):u("InvalidXml","Start tag expected.",1)};const s='"',a="'";function o(t,e){let i="",n="",r=!1;for(;e<t.length;e++){if(t[e]===s||t[e]===a)""===n?n=t[e]:n!==t[e]||(n="");else if(">"===t[e]&&""===n){r=!0;break}i+=t[e]}return""===n&&{value:i,index:e,tagClosed:r}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,i){const n=t.getAllMatches(e,l),r={};for(let t=0;t<n.length;t++){if(0===n[t][1].length)return u("InvalidAttr","Attribute '"+n[t][2]+"' has no space in starting.",A(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",A(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",A(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",A(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",A(n[t]));r[e]=1}return!0}function h(t,e){if(";"===t[++e])return-1;if("#"===t[e])return function(t,e){let i=/\d/;for("x"===t[e]&&(e++,i=/[\da-fA-F]/);e<t.length;e++){if(";"===t[e])return e;if(!t[e].match(i))break}return-1}(t,++e);let i=0;for(;e<t.length;e++,i++)if(!(t[e].match(/\w/)&&i<20)){if(";"===t[e])break;return-1}return e}function u(t,e,i){return{err:{code:t,msg:e,line:i.line||i,col:i.col}}}function d(e){return t.isName(e)}function p(t,e){const i=t.substring(0,e).split(/\r?\n/);return{line:i.length,col:i[i.length-1].length+1}}function A(t){return t.startIndex+t[1].length}return g}var y,C,w,b,_,E,x,S,I,k,T,N={};function D(){return I?S:(I=1,S=function(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const i of t){if("string"==typeof i&&e===i)return!0;if(i instanceof RegExp&&i.test(e))return!0}}:()=>!1})}var P,R,B,L,O,M,U,$,F,V,j,z,q,H={};function G(){if(P)return H;function t(r,s,a){let o;const l={};for(let c=0;c<r.length;c++){const h=r[c],u=e(h);let d="";if(d=void 0===a?u:a+"."+u,u===s.textNodeName)void 0===o?o=h[u]:o+=""+h[u];else{if(void 0===u)continue;if(h[u]){let e=t(h[u],s,d);const r=n(e,s);h[":@"]?i(e,h[":@"],d,s):1!==Object.keys(e).length||void 0===e[s.textNodeName]||s.alwaysCreateTextNode?0===Object.keys(e).length&&(s.alwaysCreateTextNode?e[s.textNodeName]="":e=""):e=e[s.textNodeName],void 0!==l[u]&&l.hasOwnProperty(u)?(Array.isArray(l[u])||(l[u]=[l[u]]),l[u].push(e)):s.isArray(u,d,r)?l[u]=[e]:l[u]=e}}}return"string"==typeof o?o.length>0&&(l[s.textNodeName]=o):void 0!==o&&(l[s.textNodeName]=o),l}function e(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(":@"!==i)return i}}function i(t,e,i,n){if(e){const r=Object.keys(e),s=r.length;for(let a=0;a<s;a++){const s=r[a];n.isArray(s,i+"."+s,!0,!0)?t[s]=[e[s]]:t[s]=e[s]}}}function n(t,e){const{textNodeName:i}=e,n=Object.keys(t).length;return 0===n||!(1!==n||!t[i]&&"boolean"!=typeof t[i]&&0!==t[i])}return P=1,H.prettify=function(e,i){return t(e,i)},H}function Y(){if(B)return R;B=1;const{buildOptions:t}=function(){if(y)return N;y=1;const t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t}};return N.buildOptions=function(e){return Object.assign({},t,e)},N.defaultOptions=t,N}(),e=function(){if(T)return k;T=1;const t=m(),e=w?C:(w=1,C=class{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}),i=function(){if(_)return b;_=1;const t=m();function e(t,e){let i="";for(;e<t.length&&"'"!==t[e]&&'"'!==t[e];e++)i+=t[e];if(i=i.trim(),-1!==i.indexOf(" "))throw new Error("External entites are not supported");const n=t[e++];let r="";for(;e<t.length&&t[e]!==n;e++)r+=t[e];return[i,r,e]}function i(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"N"===t[e+3]&&"T"===t[e+4]&&"I"===t[e+5]&&"T"===t[e+6]&&"Y"===t[e+7]}function n(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"L"===t[e+3]&&"E"===t[e+4]&&"M"===t[e+5]&&"E"===t[e+6]&&"N"===t[e+7]&&"T"===t[e+8]}function r(t,e){return"!"===t[e+1]&&"A"===t[e+2]&&"T"===t[e+3]&&"T"===t[e+4]&&"L"===t[e+5]&&"I"===t[e+6]&&"S"===t[e+7]&&"T"===t[e+8]}function s(t,e){return"!"===t[e+1]&&"N"===t[e+2]&&"O"===t[e+3]&&"T"===t[e+4]&&"A"===t[e+5]&&"T"===t[e+6]&&"I"===t[e+7]&&"O"===t[e+8]&&"N"===t[e+9]}function a(e){if(t.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}return b=function(t,o){const l={};if("O"!==t[o+3]||"C"!==t[o+4]||"T"!==t[o+5]||"Y"!==t[o+6]||"P"!==t[o+7]||"E"!==t[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let c=1,h=!1,u=!1,d="";for(;o<t.length;o++)if("<"!==t[o]||u)if(">"===t[o]){if(u?"-"===t[o-1]&&"-"===t[o-2]&&(u=!1,c--):c--,0===c)break}else"["===t[o]?h=!0:d+=t[o];else{if(h&&i(t,o)){let i,n;o+=7,[i,n,o]=e(t,o+1),-1===n.indexOf("&")&&(l[a(i)]={regx:RegExp(`&${i};`,"g"),val:n})}else h&&n(t,o)||h&&r(t,o)?o+=8:h&&s(t,o)?o+=9:u=!0;c++,d=""}if(0!==c)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(x)return E;x=1;const t=/^[-+]?0x[a-fA-F0-9]+$/,e=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return E=function(n,r={}){if(r=Object.assign({},i,r),!n||"string"!=typeof n)return n;let s=n.trim();if(void 0!==r.skipLike&&r.skipLike.test(s))return n;if(r.hex&&t.test(s))return Number.parseInt(s,16);{const t=e.exec(s);if(t){const e=t[1],i=t[2];let o=(a=t[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substr(0,a.length-1)),a):a;const l=t[4]||t[6];if(!r.leadingZeros&&i.length>0&&e&&"."!==s[2])return n;if(!r.leadingZeros&&i.length>0&&!e&&"."!==s[1])return n;{const t=Number(s),a=""+t;return-1!==a.search(/[eE]/)||l?r.eNotation?t:n:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||e&&a==="-"+o?t:n:i?o===a||e+o===a?t:n:s===a||s===e+a?t:n}}return n}var a}}(),r=D();function s(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:t[n]}}}function a(t,e,i,n,r,s,a){if(void 0!==t&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,i,r,s);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?y(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function o(t){if(this.options.removeNSPrefix){const e=t.split(":"),i="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=i+e[1])}return t}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function c(e,i,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){const n=t.getAllMatches(e,l),r=n.length,s={};for(let t=0;t<r;t++){const e=this.resolveNameSpace(n[t][1]);if(this.ignoreAttributesFn(e,i))continue;let r=n[t][4],a=this.options.attributeNamePrefix+e;if(e.length)if(this.options.transformAttributeName&&(a=this.options.transformAttributeName(a)),"__proto__"===a&&(a="#__proto__"),void 0!==r){this.options.trimValues&&(r=r.trim()),r=this.replaceEntitiesValue(r);const t=this.options.attributeValueProcessor(e,r,i);s[a]=null==t?r:typeof t!=typeof r||t!==r?t:y(r,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[a]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const t={};return t[this.options.attributesGroupName]=s,t}return s}}const h=function(t){t=t.replace(/\r\n?/g,"\n");const n=new e("!xml");let r=n,s="",a="";for(let o=0;o<t.length;o++)if("<"===t[o])if("/"===t[o+1]){const e=g(t,">",o,"Closing Tag is not closed.");let i=t.substring(o+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(s=this.saveTextToParentTag(s,r,a));const n=a.substring(a.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: </${i}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),r=this.tagsNodeStack.pop(),s="",o=e}else if("?"===t[o+1]){let i=A(t,o,!1,"?>");if(!i)throw new Error("Pi Tag is not closed.");if(s=this.saveTextToParentTag(s,r,a),this.options.ignoreDeclaration&&"?xml"===i.tagName||this.options.ignorePiTags);else{const t=new e(i.tagName);t.add(this.options.textNodeName,""),i.tagName!==i.tagExp&&i.attrExpPresent&&(t[":@"]=this.buildAttributesMap(i.tagExp,a,i.tagName)),this.addChild(r,t,a)}o=i.closeIndex+1}else if("!--"===t.substr(o+1,3)){const e=g(t,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(o+4,e-2);s=this.saveTextToParentTag(s,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}o=e}else if("!D"===t.substr(o+1,2)){const e=i(t,o);this.docTypeEntities=e.entities,o=e.i}else if("!["===t.substr(o+1,2)){const e=g(t,"]]>",o,"CDATA is not closed.")-2,i=t.substring(o+9,e);s=this.saveTextToParentTag(s,r,a);let n=this.parseTextData(i,r.tagname,a,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,n),o=e+2}else{let i=A(t,o,this.options.removeNSPrefix),l=i.tagName;const c=i.rawTagName;let h=i.tagExp,u=i.attrExpPresent,d=i.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&s&&"!xml"!==r.tagname&&(s=this.saveTextToParentTag(s,r,a,!1));const p=r;if(p&&-1!==this.options.unpairedTags.indexOf(p.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),l!==n.tagname&&(a+=a?"."+l:l),this.isItStopNode(this.options.stopNodes,a,l)){let n="";if(h.length>0&&h.lastIndexOf("/")===h.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),o=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=i.closeIndex;else{const e=this.readStopNodeData(t,c,d+1);if(!e)throw new Error(`Unexpected end of ${c}`);o=e.i,n=e.tagContent}const s=new e(l);l!==h&&u&&(s[":@"]=this.buildAttributesMap(h,a,l)),n&&(n=this.parseTextData(n,l,a,!0,u,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),s.add(this.options.textNodeName,n),this.addChild(r,s,a)}else{if(h.length>0&&h.lastIndexOf("/")===h.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const t=new e(l);l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),a=a.substr(0,a.lastIndexOf("."))}else{const t=new e(l);this.tagsNodeStack.push(r),l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),r=t}s="",o=d}}else s+=t[o];return n.child};function u(t,e,i){const n=this.options.updateTag(e.tagname,i,e[":@"]);!1===n||("string"==typeof n?(e.tagname=n,t.addChild(e)):t.addChild(e))}const d=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const i=this.docTypeEntities[e];t=t.replace(i.regx,i.val)}for(let e in this.lastEntities){const i=this.lastEntities[e];t=t.replace(i.regex,i.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const i=this.htmlEntities[e];t=t.replace(i.regex,i.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function p(t,e,i,n){return t&&(void 0===n&&(n=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function f(t,e,i){const n="*."+i;for(const i in t){const r=t[i];if(n===r||e===r)return!0}return!1}function g(t,e,i,n){const r=t.indexOf(e,i);if(-1===r)throw new Error(n);return r+e.length-1}function A(t,e,i,n=">"){const r=function(t,e,i=">"){let n,r="";for(let s=e;s<t.length;s++){let e=t[s];if(n)e===n&&(n="");else if('"'===e||"'"===e)n=e;else if(e===i[0]){if(!i[1])return{data:r,index:s};if(t[s+1]===i[1])return{data:r,index:s}}else"\t"===e&&(e=" ");r+=e}}(t,e+1,n);if(!r)return;let s=r.data;const a=r.index,o=s.search(/\s/);let l=s,c=!0;-1!==o&&(l=s.substring(0,o),s=s.substring(o+1).trimStart());const h=l;if(i){const t=l.indexOf(":");-1!==t&&(l=l.substr(t+1),c=l!==r.data.substr(t+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:c,rawTagName:h}}function v(t,e,i){const n=i;let r=1;for(;i<t.length;i++)if("<"===t[i])if("/"===t[i+1]){const s=g(t,">",i,`${e} is not closed`);if(t.substring(i+2,s).trim()===e&&(r--,0===r))return{tagContent:t.substring(n,i),i:s};i=s}else if("?"===t[i+1])i=g(t,"?>",i+1,"StopNode is not closed.");else if("!--"===t.substr(i+1,3))i=g(t,"--\x3e",i+3,"StopNode is not closed.");else if("!["===t.substr(i+1,2))i=g(t,"]]>",i,"StopNode is not closed.")-2;else{const n=A(t,i,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&r++,i=n.closeIndex)}}function y(e,i,r){if(i&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&n(e,r)}return t.isExist(e)?e:""}return k=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=s,this.parseXml=h,this.parseTextData=a,this.resolveNameSpace=o,this.buildAttributesMap=c,this.isItStopNode=f,this.replaceEntitiesValue=d,this.readStopNodeData=v,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=G(),n=v();return R=class{constructor(e){this.externalEntities={},this.options=t(e)}parse(t,r){if("string"==typeof t);else{if(!t.toString)throw new Error("XML data is accepted in String or Bytes[] form.");t=t.toString()}if(r){!0===r&&(r={});const e=n.validate(t,r);if(!0!==e)throw Error(`${e.err.msg}:${e.err.line}:${e.err.col}`)}const s=new e(this.options);s.addExternalEntities(this.externalEntities);const a=s.parseXml(t);return this.options.preserveOrder||void 0===a?a:i(a,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}}}function W(){if(O)return L;function t(s,a,o,l){let c="",h=!1;for(let u=0;u<s.length;u++){const d=s[u],p=e(d);if(void 0===p)continue;let f="";if(f=0===o.length?p:`${o}.${p}`,p===a.textNodeName){let t=d[p];n(f,a)||(t=a.tagValueProcessor(p,t),t=r(t,a)),h&&(c+=l),c+=t,h=!1;continue}if(p===a.cdataPropName){h&&(c+=l),c+=`<![CDATA[${d[p][0][a.textNodeName]}]]>`,h=!1;continue}if(p===a.commentPropName){c+=l+`\x3c!--${d[p][0][a.textNodeName]}--\x3e`,h=!0;continue}if("?"===p[0]){const t=i(d[":@"],a),e="?xml"===p?"":l;let n=d[p][0][a.textNodeName];n=0!==n.length?" "+n:"",c+=e+`<${p}${n}${t}?>`,h=!0;continue}let g=l;""!==g&&(g+=a.indentBy);const A=l+`<${p}${i(d[":@"],a)}`,m=t(d[p],a,f,g);-1!==a.unpairedTags.indexOf(p)?a.suppressUnpairedNode?c+=A+">":c+=A+"/>":m&&0!==m.length||!a.suppressEmptyNode?m&&m.endsWith(">")?c+=A+`>${m}${l}</${p}>`:(c+=A+">",m&&""!==l&&(m.includes("/>")||m.includes("</"))?c+=l+a.indentBy+m+l:c+=m,c+=`</${p}>`):c+=A+"/>",h=!0}return c}function e(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];if(t.hasOwnProperty(n)&&":@"!==n)return n}}function i(t,e){let i="";if(t&&!e.ignoreAttributes)for(let n in t){if(!t.hasOwnProperty(n))continue;let s=e.attributeValueProcessor(n,t[n]);s=r(s,e),!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}="${s}"`}return i}function n(t,e){let i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let n in e.stopNodes)if(e.stopNodes[n]===t||e.stopNodes[n]==="*."+i)return!0;return!1}function r(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const n=e.entities[i];t=t.replace(n.regex,n.val)}return t}return O=1,L=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function X(){if(j)return V;j=1;const t="object"==typeof a&&a.env&&a.env.NODE_DEBUG&&/\bsemver\b/i.test(a.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return V=t}function Q(){if(q)return z;q=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return z={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}!function(){if(F)return $;F=1;const t=v(),e=Y(),i=function(){if(U)return M;U=1;const t=W(),e=D(),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a),this.processTextOrObjNode=r,this.options.format?(this.indentate=s,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function r(t,e,i,n){const r=this.j2x(t,i+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i):this.buildObjectNode(r.val,e,r.attrStr,i)}function s(t){return this.options.indentBy.repeat(t)}function a(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}return n.prototype.build=function(e){return this.options.preserveOrder?t(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},n.prototype.j2x=function(t,e,i){let n="",r="";const s=i.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(r+="");else if(null===t[a])this.isAttribute(a)?r+="":"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)r+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const i=this.isAttribute(a);if(i&&!this.ignoreAttributesFn(i,s))n+=this.buildAttrPairStr(i,""+t[a]);else if(!i)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);r+=this.replaceEntitiesValue(e)}else r+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let s="",o="";for(let l=0;l<n;l++){const n=t[a][l];if(void 0===n);else if(null===n)"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const t=this.j2x(n,e+1,i.concat(a));s+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else s+=this.processTextOrObjNode(n,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,n);t=this.replaceEntitiesValue(t),s+=t}else s+=this.buildTextValNode(n,a,"",e)}this.options.oneListGroup&&(s=this.buildObjectNode(s,a,o,e)),r+=s}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let r=0;r<i;r++)n+=this.buildAttrPairStr(e[r],""+t[a][e[r]])}else r+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:n,val:r}},n.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},n.prototype.buildObjectNode=function(t,e,i,n){if(""===t)return"?"===e[0]?this.indentate(n)+"<"+e+i+"?"+this.tagEndChar:this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let r="</"+e+this.tagEndChar,s="";return"?"===e[0]&&(s="?",r=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===s.length?this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(n)+"<"+e+i+s+this.tagEndChar+t+this.indentate(n)+r:this.indentate(n)+"<"+e+i+s+">"+t+r}},n.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},n.prototype.buildTextValNode=function(t,e,i,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+i+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(e,t);return r=this.replaceEntitiesValue(r),""===r?this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+i+">"+r+"</"+e+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},M=n}();$={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var Z,K,J,tt,et,it,nt,rt,st,at,ot,lt,ct,ht={exports:{}};function ut(){if(nt)return it;nt=1;const t=X(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=Q(),{safeRe:n,t:r}=(Z||(Z=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=Q(),s=X(),a=(e=t.exports={}).re=[],o=e.safeRe=[],l=e.src=[],c=e.t={};let h=0;const u="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[u,n]],p=(t,e,i)=>{const n=(t=>{for(const[e,i]of d)t=t.split(`${e}*`).join(`${e}{0,${i}}`).split(`${e}+`).join(`${e}{1,${i}}`);return t})(e),r=h++;s(t,r,e),c[t]=r,l[r]=e,a[r]=new RegExp(e,i?"g":void 0),o[r]=new RegExp(n,i?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${u}*`),p("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${u}+`),p("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),p("FULL",`^${l[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),p("LOOSE",`^${l[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),p("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?`),p("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",l[c.COERCE],!0),p("COERCERTLFULL",l[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",p("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",p("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(ht,ht.exports)),ht.exports),s=function(){if(J)return K;J=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return K=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(et)return tt;et=1;const t=/^[0-9]+$/,e=(e,i)=>{const n=t.test(e),r=t.test(i);return n&&r&&(e=+e,i=+i),e===i?0:n&&!r?-1:r&&!n?1:e<i?-1:1};return tt={compareIdentifiers:e,rcompareIdentifiers:(t,i)=>e(i,t)}}();class o{constructor(a,l){if(l=s(l),a instanceof o){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if("string"!=typeof a)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof a}".`);if(a.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const c=a.trim().match(l.loose?n[r.LOOSE]:n[r.FULL]);if(!c)throw new TypeError(`Invalid Version: ${a}`);if(this.raw=a,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map((t=>{if(/^[0-9]+$/.test(t)){const e=+t;if(e>=0&&e<i)return e}return t})):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(t("SemVer.compare",this.version,this.options,e),!(e instanceof o)){if("string"==typeof e&&e===this.version)return 0;e=new o(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(t){return t instanceof o||(t=new o(t,this.options)),a(this.major,t.major)||a(this.minor,t.minor)||a(this.patch,t.patch)}comparePre(e){if(e instanceof o||(e=new o(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let i=0;do{const n=this.prerelease[i],r=e.prerelease[i];if(t("prerelease compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}compareBuild(e){e instanceof o||(e=new o(e,this.options));let i=0;do{const n=this.build[i],r=e.build[i];if(t("build compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}inc(t,e,i){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e,i),this.inc("pre",e,i);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",e,i),this.inc("pre",e,i);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const t=Number(i)?1:0;if(!e&&!1===i)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[t];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(e===this.prerelease.join(".")&&!1===i)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(t)}}if(e){let n=[e,t];!1===i&&(n=[e]),0===a(this.prerelease[0],e)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return it=o}!function(){if(ot)return at;ot=1;const t=function(){if(st)return rt;st=1;const t=ut();return rt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();at=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(ct)return lt;ct=1;const t=ut();lt=(e,i)=>new t(e,i).major}(),s.m},38310:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-expiry-time[data-v-66d8c844]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-66d8c844]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-66d8c844]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-66d8c844]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const o=a},38779:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__internal .avatar-external[data-v-57874406]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-57874406]{opacity:1;color:var(--color-success)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue"],names:[],mappings:"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,0BAAA",sourcesContent:["\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n"],sourceRoot:""}]);const o=a},43570:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-44339fa4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-44339fa4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-44339fa4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-44339fa4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-44339fa4]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const o=a},48318:function(t,e,i){!function(t){"use strict";var e,i=function(){try{if(t.URLSearchParams&&"bar"===new t.URLSearchParams("foo=bar").get("foo"))return t.URLSearchParams}catch(t){}return null}(),n=i&&"a=1"===new i({a:1}).toString(),r=i&&"+"===new i("s=%2B").get("s"),s=i&&"size"in i.prototype,a="__URLSearchParams__",o=!i||((e=new i).append("s"," &"),"s=+%26"===e.toString()),l=p.prototype,c=!(!t.Symbol||!t.Symbol.iterator);if(!(i&&n&&r&&o&&s)){l.append=function(t,e){v(this[a],t,e)},l.delete=function(t){delete this[a][t]},l.get=function(t){var e=this[a];return this.has(t)?e[t][0]:null},l.getAll=function(t){var e=this[a];return this.has(t)?e[t].slice(0):[]},l.has=function(t){return C(this[a],t)},l.set=function(t,e){this[a][t]=[""+e]},l.toString=function(){var t,e,i,n,r=this[a],s=[];for(e in r)for(i=f(e),t=0,n=r[e];t<n.length;t++)s.push(i+"="+f(n[t]));return s.join("&")};var h,u=t.Proxy&&i&&(!r||!o||!n||!s);u?(h=new Proxy(i,{construct:function(t,e){return new t(new p(e[0]).toString())}})).toString=Function.prototype.toString.bind(p):h=p,Object.defineProperty(t,"URLSearchParams",{value:h});var d=t.URLSearchParams.prototype;d.polyfill=!0,!u&&t.Symbol&&(d[t.Symbol.toStringTag]="URLSearchParams"),"forEach"in d||(d.forEach=function(t,e){var i=m(this.toString());Object.getOwnPropertyNames(i).forEach((function(n){i[n].forEach((function(i){t.call(e,i,n,this)}),this)}),this)}),"sort"in d||(d.sort=function(){var t,e,i,n=m(this.toString()),r=[];for(t in n)r.push(t);for(r.sort(),e=0;e<r.length;e++)this.delete(r[e]);for(e=0;e<r.length;e++){var s=r[e],a=n[s];for(i=0;i<a.length;i++)this.append(s,a[i])}}),"keys"in d||(d.keys=function(){var t=[];return this.forEach((function(e,i){t.push(i)})),A(t)}),"values"in d||(d.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),A(t)}),"entries"in d||(d.entries=function(){var t=[];return this.forEach((function(e,i){t.push([i,e])})),A(t)}),c&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries),"size"in d||Object.defineProperty(d,"size",{get:function(){var t=m(this.toString());if(d===this)throw new TypeError("Illegal invocation at URLSearchParams.invokeGetter");return Object.keys(t).reduce((function(e,i){return e+t[i].length}),0)}})}function p(t){((t=t||"")instanceof URLSearchParams||t instanceof p)&&(t=t.toString()),this[a]=m(t)}function f(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function g(t){return t.replace(/[ +]/g,"%20").replace(/(%[a-f0-9]{2})+/gi,(function(t){return decodeURIComponent(t)}))}function A(e){var i={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return c&&(i[t.Symbol.iterator]=function(){return i}),i}function m(t){var e={};if("object"==typeof t)if(y(t))for(var i=0;i<t.length;i++){var n=t[i];if(!y(n)||2!==n.length)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");v(e,n[0],n[1])}else for(var r in t)t.hasOwnProperty(r)&&v(e,r,t[r]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var s=t.split("&"),a=0;a<s.length;a++){var o=s[a],l=o.indexOf("=");-1<l?v(e,g(o.slice(0,l)),g(o.slice(l+1))):o&&v(e,g(o),"")}}return e}function v(t,e,i){var n="string"==typeof i?i:null!=i&&"function"==typeof i.toString?i.toString():JSON.stringify(i);C(t,e)?t[e].push(n):t[e]=[n]}function y(t){return!!t&&"[object Array]"===Object.prototype.toString.call(t)}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(void 0!==i.g?i.g:"undefined"!=typeof window?window:this)},56467:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__inherited .avatar-shared[data-v-a6cc72e6]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=a},59620:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharingTabDetailsView[data-v-4d0ee506]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4d0ee506]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4d0ee506]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4d0ee506]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4d0ee506]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4d0ee506]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4d0ee506]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4d0ee506]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4d0ee506]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4d0ee506] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4d0ee506]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4d0ee506]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4d0ee506]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4d0ee506]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-4d0ee506]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]:first-child{margin-inline-start:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue"],names:[],mappings:"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA",sourcesContent:["\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=a},59879:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-fe8ed59e]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-fe8ed59e]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-fe8ed59e]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-fe8ed59e]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=a},60611:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Bi});var r=n(21777),s=n(35810),a=n(32981),o=n(63814),l=n(85072),c=n.n(l),h=n(97825),u=n.n(h),d=n(77659),p=n.n(d),f=n(55056),g=n.n(f),A=n(10540),m=n.n(A),v=n(41113),y=n.n(v),C=n(97380),w={};w.styleTagTransform=y(),w.setAttributes=g(),w.insert=p().bind(null,"head"),w.domAPI=u(),w.insertStyleElement=m(),c()(C.A,w),C.A&&C.A.locals&&C.A.locals;var b=n(53334),_=n(41944),E=n(67607);const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},S="object"==typeof global&&global&&global.Object===Object&&global;var I="object"==typeof self&&self&&self.Object===Object&&self;const k=S||I||Function("return this")(),T=function(){return k.Date.now()};var N=/\s/;var D=/^\s+/;const P=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&N.test(t.charAt(e)););return e}(t)+1).replace(D,""):t},R=k.Symbol;var B=Object.prototype,L=B.hasOwnProperty,O=B.toString,M=R?R.toStringTag:void 0;var U=Object.prototype.toString;var $=R?R.toStringTag:void 0;const F=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":$&&$ in Object(t)?function(t){var e=L.call(t,M),i=t[M];try{t[M]=void 0;var n=!0}catch(t){}var r=O.call(t);return n&&(e?t[M]=i:delete t[M]),r}(t):function(t){return U.call(t)}(t)};var V=/^[-+]0x[0-9a-f]+$/i,j=/^0b[01]+$/i,z=/^0o[0-7]+$/i,q=parseInt;const H=function(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return null!=t&&"object"==typeof t}(t)&&"[object Symbol]"==F(t)}(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=P(t);var i=j.test(t);return i||z.test(t)?q(t.slice(2),i?2:8):V.test(t)?NaN:+t};var G=Math.max,Y=Math.min;var W=n(24764),X=n(57505),Q=n(85471),Z=n(65043);const K=new class{constructor(){this.http=Z.Ay}listCollection(t){return this.http.get((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e}),{name:i}).then((t=>t.data.ocs.data))}addResource(t,e,i){return i=""+i,this.http.post((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{resourceType:e,resourceId:i}).then((t=>t.data.ocs.data))}removeResource(t,e,i){return this.http.delete((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{params:{resourceType:e,resourceId:i}}).then((t=>t.data.ocs.data))}search(t){return this.http.get((0,o.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},J=(0,Q.Kh)({collections:[]}),tt={addCollections(t){(0,Q.hZ)(J,"collections",t)},addCollection(t){J.collections.push(t)},removeCollection(t){(0,Q.hZ)(J,"collections",J.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=J.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Q.hZ)(J.collections,e,t):J.collections.push(t)}},et={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>K.getCollectionsByResource(t,e).then((t=>(tt.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>K.createCollection(t,e,r).then((t=>{tt.addCollection(t),et.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>K.renameCollection(t,e).then((t=>(tt.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>K.addResource(t,e,i).then((t=>(tt.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>K.removeResource(t,e,i).then((t=>{t.resources.length>0?tt.updateCollection(t):tt.removeCollection(t)})),search:t=>K.search(t)};function it(t,e,i,n,r,s,a,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=i,c._compiled=!0),n&&(c.functional=!0),s&&(c._scopeId="data-v-"+s),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var h=c.render;c.render=function(t,e){return l.call(e),h(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:c}}const nt=it({name:"CollectionListItem",components:{NcAvatar:_.A,NcActions:W.A,NcActionButton:X.A},props:{collection:{type:Object,default:null}},data:()=>({detailsOpen:!1,newName:null,error:{}}),computed:{getIcon:()=>t=>[t.iconClass],typeClass:()=>t=>"resource-type-"+t.type,limitedResources:()=>t=>t.resources?t.resources.slice(0,2):[],iconUrl:()=>t=>t.mimetype?OC.MimeType.getIconUrl(t.mimetype):t.iconUrl?t.iconUrl:""},methods:{t:b.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){et.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?et.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,b.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Q.hZ)(this.error,"rename",null)}),3e3)})):this.newName=null}}},(function(){var t=this,e=t._self._c;return e("li",{staticClass:"collection-list-item"},[e("NcAvatar",{staticClass:"collection-avatar",attrs:{"display-name":t.collection.name,"allow-placeholder":""}}),null===t.newName?e("span",{staticClass:"collection-item-name",attrs:{title:""},on:{click:t.showDetails}},[t._v(t._s(t.collection.name))]):e("form",{class:{shouldshake:t.error.rename},on:{submit:function(e){return e.preventDefault(),t.renameCollection.apply(null,arguments)}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newName,expression:"newName"}],attrs:{type:"text",autocomplete:"off",autocapitalize:"off"},domProps:{value:t.newName},on:{input:function(e){e.target.composing||(t.newName=e.target.value)}}}),e("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t.detailsOpen||null!==t.newName?t._e():e("div",{staticClass:"linked-icons"},t._l(t.limitedResources(t.collection),(function(i){return e("a",{key:i.type+"|"+i.id,class:t.typeClass(i),attrs:{title:i.name,href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}})])})),0),null===t.newName?e("span",{staticClass:"sharingOptionsGroup"},[e("NcActions",[e("NcActionButton",{attrs:{icon:"icon-info"},on:{click:function(e){return e.preventDefault(),t.toggleDetails.apply(null,arguments)}}},[t._v(" "+t._s(t.detailsOpen?t.t("core","Hide details"):t.t("core","Show details"))+" ")]),e("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(e){return e.preventDefault(),t.openRename.apply(null,arguments)}}},[t._v(" "+t._s(t.t("core","Rename project"))+" ")])],1)],1):t._e(),e("transition",{attrs:{name:"fade"}},[t.error.rename?e("div",{staticClass:"error"},[t._v(" "+t._s(t.error.rename)+" ")]):t._e()]),e("transition",{attrs:{name:"fade"}},[t.detailsOpen?e("ul",{staticClass:"resource-list-details"},t._l(t.collection.resources,(function(i){return e("li",{key:i.type+"|"+i.id,class:t.typeClass(i)},[e("a",{attrs:{href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}}),e("span",{staticClass:"resource-name"},[t._v(t._s(i.name||""))])]),e("span",{staticClass:"icon-close",on:{click:function(e){return t.removeResource(t.collection,i)}}})])})),0):t._e()])],1)}),[],!1,null,"42733c12",null,null).exports,rt=function(t,e,i){var n,r,s,a,o,l,c=0,h=!1,u=!1,d=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(e){var i=n,s=r;return n=r=void 0,c=e,a=t.apply(s,i)}function f(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function g(){var t=T();if(f(t))return A(t);o=setTimeout(g,function(t){var i=e-(t-l);return u?Y(i,s-(t-c)):i}(t))}function A(t){return o=void 0,d&&n?p(t):(n=r=void 0,a)}function m(){var t=T(),i=f(t);if(n=arguments,r=this,l=t,i){if(void 0===o)return function(t){return c=t,o=setTimeout(g,e),h?p(t):a}(l);if(u)return clearTimeout(o),o=setTimeout(g,e),p(l)}return void 0===o&&(o=setTimeout(g,e)),a}return e=H(e)||0,x(i)&&(h=!!i.leading,s=(u="maxWait"in i)?G(H(i.maxWait)||0,e):s,d="trailing"in i?!!i.trailing:d),m.cancel=function(){void 0!==o&&clearTimeout(o),c=0,n=l=r=o=void 0},m.flush=function(){return void 0===o?a:A(T())},m}((function(t,e){""!==t&&(e(!0),et.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),st={name:"CollectionList",components:{CollectionListItem:nt,NcAvatar:_.A,NcSelect:E.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:J}),data:()=>({selectIsOpen:!1,generatingCodes:!1,codes:void 0,value:null,model:{},searchCollections:[],error:null,isSelectOpen:!1}),computed:{collections(){return this.state.collections.filter((t=>void 0!==t.resources.find((t=>t&&t.id===""+this.id&&t.type===this.type))))},placeholder(){return this.isSelectOpen?(0,b.t)("core","Type to search for existing projects"):(0,b.t)("core","Add to a project")},options(){const t=[];window.OCP.Collaboration.getTypes().sort().forEach((e=>{t.push({method:0,type:e,title:window.OCP.Collaboration.getLabel(e),class:window.OCP.Collaboration.getIcon(e),action:()=>window.OCP.Collaboration.trigger(e)})}));for(const e in this.searchCollections)-1===this.collections.findIndex((t=>t.id===this.searchCollections[e].id))&&t.push({method:1,title:this.searchCollections[e].name,collectionId:this.searchCollections[e].id});return t}},watch:{type(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:b.t,select(t,e){0===t.method&&t.action().then((e=>{et.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,b.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&et.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,b.t)("core","Failed to add the item to the project"),t)}))},search(t,e){rt.bind(this)(t,e)},showSelect(){this.selectIsOpen=!0,this.$refs.select.$el.focus()},hideSelect(){this.selectIsOpen=!1},isVueComponent:t=>t._isVue,setError(t,e){console.error(t,e),this.error=t,setTimeout((()=>{this.error=null}),5e3)}}},at=it(st,(function(){var t=this,e=t._self._c;return t.collections&&t.type&&t.id?e("ul",{staticClass:"collection-list",attrs:{id:"collection-list"}},[e("li",{on:{click:t.showSelect}},[t._m(0),e("div",{attrs:{id:"collection-select-container"}},[e("NcSelect",{ref:"select",attrs:{"aria-label-combobox":t.t("core","Add to a project"),options:t.options,placeholder:t.placeholder,label:"title",limit:5},on:{close:function(e){t.isSelectOpen=!1},open:function(e){t.isSelectOpen=!0},"option:selected":t.select,search:t.search},scopedSlots:t._u([{key:"selected-option",fn:function(i){return[e("span",{staticClass:"option__desc"},[e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])])]}},{key:"option",fn:function(i){return[e("span",{staticClass:"option__wrapper"},[i.class?e("span",{staticClass:"avatar",class:i.class}):2!==i.method?e("NcAvatar",{attrs:{"allow-placeholder":"","display-name":i.title}}):t._e(),e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])],1)]}}],null,!1,2397208459),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[e("p",{staticClass:"hint"},[t._v(" "+t._s(t.t("core","Connect items to a project to make them easier to find"))+" ")])])],1)]),e("transition",{attrs:{name:"fade"}},[t.error?e("li",{staticClass:"error"},[t._v(" "+t._s(t.error)+" ")]):t._e()]),t._l(t.collections,(function(t){return e("CollectionListItem",{key:t.id,attrs:{collection:t}})}))],2):t._e()}),[function(){var t=this._self._c;return t("div",{staticClass:"avatar"},[t("span",{staticClass:"icon-projects"})])}],!1,null,"8ebb2593",null,null).exports;var ot=n(77905),lt=n(83241),ct=n(99316),ht=n(19231),ut=n(97012),dt=n(87485);class pt{constructor(){(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i})(this,"_capabilities",void 0),this._capabilities=(0,dt.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}get showFederatedSharesAsInternal(){return(0,a.C)("files_sharing","showFederatedSharesAsInternal",!1)}}var ft=n(35947);const gt=(0,ft.YK)().setApp("files_sharing").detectUser().build();class At{constructor(t){if(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}(this,"_share",void 0),t.ocs&&t.ocs.data&&t.ocs.data[0]&&(t=t.ocs.data[0]),"string"==typeof t.id&&(t.id=Number.parseInt(t.id)),t.hide_download=!!t.hide_download,t.mail_send=!!t.mail_send,t.attributes&&"string"==typeof t.attributes)try{t.attributes=JSON.parse(t.attributes)}catch(e){console.warn("Could not parse share attributes returned by server",t.attributes)}t.attributes=t.attributes??[],this._share=t}get state(){return this._share}get id(){return this._share.id}get type(){return this._share.share_type}get permissions(){return this._share.permissions}get attributes(){return this._share.attributes||[]}set permissions(t){this._share.permissions=t}get owner(){return this._share.uid_owner}get ownerDisplayName(){return this._share.displayname_owner}get shareWith(){return this._share.share_with}get shareWithDisplayName(){return this._share.share_with_displayname||this._share.share_with}get shareWithDisplayNameUnique(){return this._share.share_with_displayname_unique||this._share.share_with}get shareWithLink(){return this._share.share_with_link}get shareWithAvatar(){return this._share.share_with_avatar}get uidFileOwner(){return this._share.uid_file_owner}get displaynameFileOwner(){return this._share.displayname_file_owner||this._share.uid_file_owner}get createdTime(){return this._share.stime}get expireDate(){return this._share.expiration}set expireDate(t){this._share.expiration=t}get token(){return this._share.token}set token(t){this._share.token=t}get note(){return this._share.note}set note(t){this._share.note=t}get label(){return this._share.label??""}set label(t){this._share.label=t}get mailSend(){return!0===this._share.mail_send}get hideDownload(){return!0===this._share.hide_download||void 0!==this.attributes.find?.((t=>{let{scope:e,key:i,value:n}=t;return"permissions"===e&&"download"===i&&!n}))}set hideDownload(t){if(!t){const t=this.attributes.find((t=>{let{key:e,scope:i}=t;return"download"===e&&"permissions"===i}));t&&(t.value=!0)}this._share.hide_download=!0===t}get password(){return this._share.password}set password(t){this._share.password=t}get passwordExpirationTime(){return this._share.password_expiration_time}set passwordExpirationTime(t){this._share.password_expiration_time=t}get sendPasswordByTalk(){return this._share.send_password_by_talk}set sendPasswordByTalk(t){this._share.send_password_by_talk=t}get path(){return this._share.path}get itemType(){return this._share.item_type}get mimetype(){return this._share.mimetype}get fileSource(){return this._share.file_source}get fileTarget(){return this._share.file_target}get fileParent(){return this._share.file_parent}get hasReadPermission(){return!!(this.permissions&window.OC.PERMISSION_READ)}get hasCreatePermission(){return!!(this.permissions&window.OC.PERMISSION_CREATE)}get hasDeletePermission(){return!!(this.permissions&window.OC.PERMISSION_DELETE)}get hasUpdatePermission(){return!!(this.permissions&window.OC.PERMISSION_UPDATE)}get hasSharePermission(){return!!(this.permissions&window.OC.PERMISSION_SHARE)}get hasDownloadPermission(){return this.attributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))}get isFileRequest(){return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[]";const e=t=>"fileRequest"===t.scope&&"enabled"===t.key&&!0===t.value;try{return JSON.parse(t).some(e)}catch(t){return gt.error("Error while parsing share attributes",{error:t}),!1}}(JSON.stringify(this.attributes))}set hasDownloadPermission(t){this.setAttribute("permissions","download",!!t)}setAttribute(t,e,i){const n={scope:t,key:e,value:i};for(const t in this._share.attributes){const e=this._share.attributes[t];if(e.scope===n.scope&&e.key===n.key)return void this._share.attributes.splice(t,1,n)}this._share.attributes.push(n)}get canEdit(){return!0===this._share.can_edit}get canDelete(){return!0===this._share.can_delete}get viaFileid(){return this._share.via_fileid}get viaPath(){return this._share.via_path}get parent(){return this._share.parent}get storageId(){return this._share.storage_id}get storage(){return this._share.storage}get itemSource(){return this._share.item_source}get status(){return this._share.status}}var mt=n(85168),vt=n(54373),yt=n(31773);const Ct={name:"SharingEntrySimple",components:{NcActions:W.A},props:{title:{type:String,default:"",required:!0},subtitle:{type:String,default:""},isUnique:{type:Boolean,default:!0},ariaExpanded:{type:Boolean,default:null}},computed:{ariaExpandedValue(){return null===this.ariaExpanded?this.ariaExpanded:this.ariaExpanded?"true":"false"}}};var wt=n(43570),bt={};bt.styleTagTransform=y(),bt.setAttributes=g(),bt.insert=p().bind(null,"head"),bt.domAPI=u(),bt.insertStyleElement=m(),c()(wt.A,bt),wt.A&&wt.A.locals&&wt.A.locals;var _t=n(14486);const Et=(0,_t.A)(Ct,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[t._t("avatar"),t._v(" "),e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title"},[t._v(t._s(t.title))]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t"+t._s(t.subtitle)+"\n\t\t")]):t._e()]),t._v(" "),t.$slots.default?e("NcActions",{ref:"actionsComponent",staticClass:"sharing-entry__actions",attrs:{"menu-align":"right","aria-expanded":t.ariaExpandedValue}},[t._t("default")],2):t._e()],2)}),[],!1,null,"44339fa4",null).exports,xt={name:"SharingEntryInternal",components:{NcActionButton:X.A,SharingEntrySimple:Et,CheckIcon:vt.A,ClipboardIcon:yt.A},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return window.location.protocol+"//"+window.location.host+(0,o.Jv)("/f/")+this.fileInfo.id},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing","Copy internal link to clipboard")},internalLinkSubtitle(){return"dir"===this.fileInfo.type?t("files_sharing","Only works for people with access to this folder"):t("files_sharing","Only works for people with access to this file")}},methods:{async copyLink(){try{await navigator.clipboard.writeText(this.internalLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}}}};var St=n(38779),It={};It.styleTagTransform=y(),It.setAttributes=g(),It.insert=p().bind(null,"head"),It.domAPI=u(),It.insertStyleElement=m(),c()(St.A,It),St.A&&St.A.locals&&St.A.locals;const kt=(0,_t.A)(xt,(function(){var t=this,e=t._self._c;return e("ul",[e("SharingEntrySimple",{ref:"shareEntrySimple",staticClass:"sharing-entry__internal",attrs:{title:t.t("files_sharing","Internal link"),subtitle:t.internalLinkSubtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-external icon-external-white"})]},proxy:!0}])},[t._v(" "),e("NcActionButton",{attrs:{title:t.copyLinkTooltip,"aria-label":t.copyLinkTooltip},on:{click:t.copyLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}])})],1)],1)}),[],!1,null,"57874406",null).exports;var Tt=n(17334),Nt=n.n(Tt),Dt=(n(48318),n(61338));const Pt=(0,o.KT)("apps/files_sharing/api/v1/shares"),Rt={methods:{async createShare(e){let{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d}=e;try{const t=await Z.Ay.post(Pt,{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d});if(!t?.data?.ocs)throw t;const e=new At(t.data.ocs.data);return(0,Dt.Ic)("files_sharing:share:created",{share:e}),e}catch(e){console.error("Error while creating share",e);const i=e?.response?.data?.ocs?.meta?.message;throw(0,mt.Qg)(i?t("files_sharing","Error creating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error creating the share"),{type:"error"}),e}},async deleteShare(e){try{const t=await Z.Ay.delete(Pt+`/${e}`);if(!t?.data?.ocs)throw t;return(0,Dt.Ic)("files_sharing:share:deleted",{id:e}),!0}catch(e){console.error("Error while deleting share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error deleting the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error deleting the share"),{type:"error"}),e}},async updateShare(e,i){try{const t=await Z.Ay.put(Pt+`/${e}`,i);if((0,Dt.Ic)("files_sharing:share:updated",{id:e}),t?.data?.ocs)return t.data.ocs.data;throw t}catch(e){if(console.error("Error while updating share",e),400!==e.response.status){const i=e?.response?.data?.ocs?.meta?.message;OC.Notification.showTemporary(i?t("files_sharing","Error updating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error updating the share"),{type:"error"})}const i=e.response.data.ocs.meta.message;throw new Error(i)}}}},Bt={NONE:0,READ:1,UPDATE:2,CREATE:4,DELETE:8,SHARE:16},Lt={READ_ONLY:Bt.READ,UPLOAD_AND_UPDATE:Bt.READ|Bt.UPDATE|Bt.CREATE|Bt.DELETE,FILE_DROP:Bt.CREATE,ALL:Bt.UPDATE|Bt.CREATE|Bt.READ|Bt.DELETE|Bt.SHARE,ALL_FILE:Bt.UPDATE|Bt.READ|Bt.SHARE};const Ot={methods:{async openSharingDetails(t){let e={};if(t.handler){const i={};this.suggestions&&(i.suggestions=this.suggestions,i.fileInfo=this.fileInfo,i.query=this.query);const n=await t.handler(i);e=this.mapShareRequestToShareObject(n)}else e=this.mapShareRequestToShareObject(t);if("dir"!==this.fileInfo.type){const t=e.permissions,i=t&~Bt.CREATE&~Bt.DELETE;t!==i&&(gt.debug("Removed create/delete permissions from file share (only valid for folders)"),e.permissions=i)}const i={fileInfo:this.fileInfo,share:e};this.$emit("open-sharing-details",i)},openShareDetailsForCustomSettings(t){t.setCustomPermissions=!0,this.openSharingDetails(t)},mapShareRequestToShareObject(t){if(t.id)return t;const e={attributes:[{value:!0,key:"download",scope:"permissions"}],hideDownload:!1,share_type:t.shareType,share_with:t.shareWith,is_no_user:t.isNoUser,user:t.shareWith,share_with_displayname:t.displayName,subtitle:t.subtitle,permissions:t.permissions??(new pt).defaultPermissions,expiration:""};return new At(e)}}},Mt={name:"SharingInput",components:{NcSelect:E.A},mixins:[Rt,Ot],props:{shares:{type:Array,default:()=>[],required:!0},linkShares:{type:Array,default:()=>[],required:!0},fileInfo:{type:Object,default:()=>{},required:!0},reshare:{type:At,default:null},canReshare:{type:Boolean,required:!0},isExternal:{type:Boolean,default:!1},placeholder:{type:String,default:""}},setup:()=>({shareInputId:`share-input-${Math.random().toString(36).slice(2,7)}`}),data:()=>({config:new pt,loading:!1,query:"",recommendations:[],ShareSearch:OCA.Sharing.ShareSearch.state,suggestions:[],value:null}),computed:{externalResults(){return this.ShareSearch.results},inputPlaceholder(){const e=this.config.isRemoteShareAllowed;return this.canReshare?this.placeholder?this.placeholder:e?t("files_sharing","Name, email, or Federated Cloud ID …"):t("files_sharing","Name or email …"):t("files_sharing","Resharing is not allowed")},isValidQuery(){return this.query&&""!==this.query.trim()&&this.query.length>this.config.minSearchStringLength},options(){return this.isValidQuery?this.suggestions:this.recommendations},noResultText(){return this.loading?t("files_sharing","Searching …"):t("files_sharing","No elements found.")}},mounted(){this.isExternal||this.getRecommendations()},methods:{onSelected(t){this.value=null,this.openSharingDetails(t)},async asyncFind(t){this.query=t.trim(),this.isValidQuery&&(this.loading=!0,await this.debounceGetSuggestions(t))},async getSuggestions(e){let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.loading=!0,!0===(0,dt.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];const r=[ot.I.Remote,ot.I.RemoteGroup];this.isExternal&&!this.config.showFederatedSharesAsInternal?n.push(...r):(n=n.concat([ot.I.User,ot.I.Group,ot.I.Team,ot.I.Room,ot.I.Guest,ot.I.Deck,ot.I.ScienceMesh]),this.config.showFederatedSharesAsInternal&&n.push(...r)),!0===(0,dt.F)().files_sharing.public.enabled&&this.isExternal&&n.push(ot.I.Email);let s=null;try{s=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"dir"===this.fileInfo.type?"folder":"file",search:e,lookup:i,perPage:this.config.maxAutocompleteResults,shareType:n}})}catch(t){return void console.error("Error fetching suggestions",t)}const a=s.data.ocs.data,l=s.data.ocs.data.exact;a.exact=[];const c=Object.values(l).reduce(((t,e)=>t.concat(e)),[]),h=Object.values(a).reduce(((t,e)=>t.concat(e)),[]),u=this.filterOutExistingShares(c).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),d=this.filterOutExistingShares(h).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),p=[];a.lookupEnabled&&!i&&p.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const f=this.externalResults.filter((t=>!t.condition||t.condition(this))),g=u.concat(d).concat(f).concat(p),A=g.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=g.map((t=>A[t.displayName]>1&&!t.desc?{...t,desc:t.shareWithDisplayNameUnique}:t)),this.loading=!1,console.info("suggestions",this.suggestions)},debounceGetSuggestions:Nt()((function(){this.getSuggestions(...arguments)}),300),async getRecommendations(){this.loading=!0;let t=null;try{t=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees_recommended"),{params:{format:"json",itemType:this.fileInfo.type}})}catch(t){return void console.error("Error fetching recommendations",t)}const e=this.externalResults.filter((t=>!t.condition||t.condition(this))),i=Object.values(t.data.ocs.data.exact).reduce(((t,e)=>t.concat(e)),[]);this.recommendations=this.filterOutExistingShares(i).map((t=>this.formatForMultiselect(t))).concat(e),this.loading=!1,console.info("recommendations",this.recommendations)},filterOutExistingShares(t){return t.reduce(((t,e)=>{if("object"!=typeof e)return t;try{if(e.value.shareType===ot.I.User){if(e.value.shareWith===(0,r.HW)().uid)return t;if(this.reshare&&e.value.shareWith===this.reshare.owner)return t}if(e.value.shareType===ot.I.Email){if(-1!==this.linkShares.map((t=>t.shareWith)).indexOf(e.value.shareWith.trim()))return t}else{const i=this.shares.reduce(((t,e)=>(t[e.shareWith]=e.type,t)),{}),n=e.value.shareWith.trim();if(n in i&&i[n]===e.value.shareType)return t}t.push(e)}catch{return t}return t}),[])},shareTypeToIcon(e){switch(e){case ot.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case ot.I.RemoteGroup:case ot.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case ot.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case ot.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case ot.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case ot.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case ot.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===ot.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==ot.I.Remote&&e.value.shareType!==ot.I.RemoteGroup||!e.value.server?e.value.shareType===ot.I.Email?e.value.shareWith:e.shareWithDescription??"":t("files_sharing","on {server}",{server:e.value.server}),{shareWith:e.value.shareWith,shareType:e.value.shareType,user:e.uuid||e.value.shareWith,isNoUser:e.value.shareType!==ot.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ut=n(6835),$t={};$t.styleTagTransform=y(),$t.setAttributes=g(),$t.insert=p().bind(null,"head"),$t.domAPI=u(),$t.insertStyleElement=m(),c()(Ut.A,$t),Ut.A&&Ut.A.locals&&Ut.A.locals;const Ft=(0,_t.A)(Mt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharing-search"},[e("label",{staticClass:"hidden-visually",attrs:{for:t.shareInputId}},[t._v("\n\t\t"+t._s(t.isExternal?t.t("files_sharing","Enter external recipients"):t.t("files_sharing","Search for internal recipients"))+"\n\t")]),t._v(" "),e("NcSelect",{ref:"select",staticClass:"sharing-search__input",attrs:{"input-id":t.shareInputId,disabled:!t.canReshare,loading:t.loading,filterable:!1,placeholder:t.inputPlaceholder,"clear-search-on-blur":()=>!1,"user-select":!0,options:t.options,"label-outside":!0},on:{search:t.asyncFind,"option:selected":t.onSelected},scopedSlots:t._u([{key:"no-options",fn:function(e){let{search:i}=e;return[t._v("\n\t\t\t"+t._s(i?t.noResultText:t.placeholder)+"\n\t\t")]}}]),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}})],1)}),[],!1,null,null,null).exports;var Vt=n(71225),jt=n(74479),zt=n(71418),qt=n(49264);const Ht=new pt;async function Gt(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Ht.passwordPolicy.api&&Ht.passwordPolicy.api.generate)try{const e=await Z.Ay.get(Ht.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,mt.Te)((0,b.Tl)("files_sharing","Password created successfully")),e.data.ocs.data.password}catch(e){console.info("Error generating password from password_policy",e),t&&(0,mt.Qg)((0,b.Tl)("files_sharing","Error generating password from password policy"))}const e=new Uint8Array(10),i=52/255;self.crypto.getRandomValues(e);let n="";for(let t=0;t<e.length;t++)n+="abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789".charAt(e[t]*i);return n}var Yt=n(77815);const Wt=(0,Yt.KU)(),Xt={mixins:[Rt],props:{fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new pt,node:null,ShareType:ot.I,errors:{},loading:!1,saving:!1,open:!1,updateQueue:new qt.A({concurrency:1}),reactiveState:this.share?.state}},computed:{path(){return(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/")},hasNote:{get(){return""!==this.share.note},set(t){this.share.note=t?null:""}},dateTomorrow:()=>new Date((new Date).setDate((new Date).getDate()+1)),lang(){const t=window.dayNamesShort?window.dayNamesShort:["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],e=window.monthNamesShort?window.monthNamesShort:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return{formatLocale:{firstDayOfWeek:window.firstDay?window.firstDay:0,monthsShort:e,weekdaysMin:t,weekdaysShort:t},monthFormat:"MMM"}},isNewShare(){return!this.share.id},isFolder(){return"dir"===this.fileInfo.type},isPublicShare(){const t=this.share.shareType??this.share.type;return[ot.I.Link,ot.I.Email].includes(t)},isRemoteShare(){return this.share.type===ot.I.RemoteGroup||this.share.type===ot.I.Remote},isShareOwner(){return this.share&&this.share.owner===(0,r.HW)().uid},isExpiryDateEnforced(){return this.isPublicShare?this.config.isDefaultExpireDateEnforced:this.isRemoteShare?this.config.isDefaultRemoteExpireDateEnforced:this.config.isDefaultInternalExpireDateEnforced},hasCustomPermissions(){return![Lt.ALL,Lt.READ_ONLY,Lt.FILE_DROP].includes(this.share.permissions)},maxExpirationDateEnforced(){return this.isExpiryDateEnforced?this.isPublicShare?this.config.defaultExpirationDate:this.isRemoteShare?this.config.defaultRemoteExpirationDateString:this.config.defaultInternalExpirationDate:null},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){t?(this.share.password=await Gt(!0),this.$set(this.share,"newPassword",this.share.password)):(this.share.password="",this.$delete(this.share,"newPassword"))}}},methods:{async getNode(){const t={path:this.path};try{this.node=await(async t=>{const e=(0,Yt.aN)(),i=await Wt.stat(`${(0,Yt.ei)()}${t}`,{details:!0,data:e});return(0,Yt.pO)(i.data)})(t.path),gt.info("Fetched node:",{node:this.node})}catch(t){gt.error("Error:",t)}},checkShare:t=>(!t.password||"string"==typeof t.password&&""!==t.password.trim())&&!(t.expirationDate&&!t.expirationDate.isValid()),formatDateToString:t=>new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())).toISOString().split("T")[0],onExpirationChange(t){if(!t)return this.share.expireDate=null,void this.$set(this.share,"expireDate",null);const e=t instanceof Date?t:new Date(t);this.share.expireDate=this.formatDateToString(e)},onNoteChange(t){this.$set(this.share,"newNote",t.trim())},onNoteSubmit(){this.share.newNote&&(this.share.note=this.share.newNote,this.$delete(this.share,"newNote"),this.queueUpdate("note"))},async onDelete(){try{this.loading=!0,this.open=!1,await this.deleteShare(this.share.id),console.debug("Share deleted",this.share.id);const e="file"===this.share.itemType?t("files_sharing",'File "{path}" has been unshared',{path:this.share.path}):t("files_sharing",'Folder "{path}" has been unshared',{path:this.share.path});(0,mt.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node)}catch(t){this.open=!0}finally{this.loading=!1}},queueUpdate(){for(var e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];if(0!==i.length){if(this.share.id){const e={};return i.forEach((t=>{null===this.share[t]||void 0===this.share[t]?e[t]="":"object"==typeof this.share[t]?e[t]=JSON.stringify(this.share[t]):e[t]=this.share[t].toString()})),this.updateQueue.add((async()=>{this.saving=!0,this.errors={};try{const t=await this.updateShare(this.share.id,e);i.indexOf("password")>=0&&(this.$delete(this.share,"newPassword"),this.share.passwordExpirationTime=t.password_expiration_time),this.$delete(this.errors,i[0]),(0,mt.Te)(this.updateSuccessMessage(i))}catch(e){gt.error("Could not update share",{error:e,share:this.share,propertyNames:i});const{message:n}=e;n&&""!==n?(this.onSyncError(i[0],n),(0,mt.Qg)(n)):(0,mt.Qg)(t("files_sharing","Could not update share"))}finally{this.saving=!1}}))}console.debug("Updated local share",this.share)}},updateSuccessMessage(e){if(1!==e.length)return t("files_sharing","Share saved");switch(e[0]){case"expireDate":return t("files_sharing","Share expiry date saved");case"hideDownload":return t("files_sharing","Share hide-download state saved");case"label":return t("files_sharing","Share label saved");case"note":return t("files_sharing","Share note for recipient saved");case"password":return t("files_sharing","Share password saved");case"permissions":return t("files_sharing","Share permissions saved");default:return t("files_sharing","Share saved")}},onSyncError(t,e){switch(this.open=!0,t){case"password":case"pending":case"expireDate":case"label":case"note":{this.$set(this.errors,t,e);let i=this.$refs[t];if(i){i.$el&&(i=i.$el);const t=i.querySelector(".focusable");t&&t.focus()}break}case"sendPasswordByTalk":this.$set(this.errors,t,e),this.share.sendPasswordByTalk=!this.share.sendPasswordByTalk}},debounceQueueUpdate:Nt()((function(t){this.queueUpdate(t)}),500)}},Qt={name:"SharingEntryInherited",components:{NcActionButton:X.A,NcActionLink:jt.A,NcActionText:zt.A,NcAvatar:_.A,SharingEntrySimple:Et},mixins:[Xt],props:{share:{type:At,required:!0}},computed:{viaFileTargetUrl(){return(0,o.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,Vt.P8)(this.share.viaPath)}}};var Zt=n(59879),Kt={};Kt.styleTagTransform=y(),Kt.setAttributes=g(),Kt.insert=p().bind(null,"head"),Kt.domAPI=u(),Kt.insertStyleElement=m(),c()(Zt.A,Kt),Zt.A&&Zt.A.locals&&Zt.A.locals;const Jt=(0,_t.A)(Qt,(function(){var t=this,e=t._self._c;return e("SharingEntrySimple",{key:t.share.id,staticClass:"sharing-entry__inherited",attrs:{title:t.share.shareWithDisplayName},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.share.shareWith,"display-name":t.share.shareWithDisplayName}})]},proxy:!0}])},[t._v(" "),e("NcActionText",{attrs:{icon:"icon-user"}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Added by {initiator}",{initiator:t.share.ownerDisplayName}))+"\n\t")]),t._v(" "),t.share.viaPath&&t.share.viaFileid?e("NcActionLink",{attrs:{icon:"icon-folder",href:t.viaFileTargetUrl}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Via “{folder}”",{folder:t.viaFolderName}))+"\n\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{icon:"icon-close"},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t")]):t._e()],1)}),[],!1,null,"fe8ed59e",null).exports,te={name:"SharingInherited",components:{NcActionButton:X.A,SharingEntryInherited:Jt,SharingEntrySimple:Et},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({loaded:!1,loading:!1,showInheritedShares:!1,shares:[]}),computed:{showInheritedSharesIcon(){return this.loading?"icon-loading-small":this.showInheritedShares?"icon-triangle-n":"icon-triangle-s"},mainTitle:()=>t("files_sharing","Others with access"),subTitle(){return this.showInheritedShares&&0===this.shares.length?t("files_sharing","No other accounts with access found"):""},toggleTooltip(){return"dir"===this.fileInfo.type?t("files_sharing","Toggle list of others with access to this directory"):t("files_sharing","Toggle list of others with access to this file")},fullPath(){return`${this.fileInfo.path}/${this.fileInfo.name}`.replace("//","/")}},watch:{fileInfo(){this.resetState()}},methods:{toggleInheritedShares(){this.showInheritedShares=!this.showInheritedShares,this.showInheritedShares?this.fetchInheritedShares():this.resetState()},async fetchInheritedShares(){this.loading=!0;try{const t=(0,o.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await Z.Ay.get(t);this.shares=e.data.ocs.data.map((t=>new At(t))).sort(((t,e)=>e.createdTime-t.createdTime)),console.info(this.shares),this.loaded=!0}catch(e){OC.Notification.showTemporary(t("files_sharing","Unable to fetch inherited shares"),{type:"error"})}finally{this.loading=!1}},resetState(){this.loaded=!1,this.loading=!1,this.showInheritedShares=!1,this.shares=[]},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}};var ee=n(56467),ie={};ie.styleTagTransform=y(),ie.setAttributes=g(),ie.insert=p().bind(null,"head"),ie.domAPI=u(),ie.insertStyleElement=m(),c()(ee.A,ie),ee.A&&ee.A.locals&&ee.A.locals;const ne=(0,_t.A)(te,(function(){var t=this,e=t._self._c;return t.shares.length?e("ul",{attrs:{id:"sharing-inherited-shares"}},[e("SharingEntrySimple",{staticClass:"sharing-entry__inherited",attrs:{title:t.mainTitle,subtitle:t.subTitle,"aria-expanded":t.showInheritedShares},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-shared icon-more-white"})]},proxy:!0}],null,!1,1184892072)},[t._v(" "),e("NcActionButton",{attrs:{icon:t.showInheritedSharesIcon,"aria-label":t.toggleTooltip,title:t.toggleTooltip},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.toggleInheritedShares.apply(null,arguments)}}})],1),t._v(" "),t._l(t.shares,(function(i){return e("SharingEntryInherited",{key:i.id,attrs:{"file-info":t.fileInfo,share:i},on:{"remove:share":t.removeShare}})}))],2):t._e()}),[],!1,null,"a6cc72e6",null).exports;var re=n(17816),se=n.n(re),ae=n(97691),oe=n(44131),le=n(15502),ce=n(94219);const he={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,_t.A)(he,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon tune-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,de={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pe=(0,_t.A)(de,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,fe={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ge=(0,_t.A)(fe,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon qrcode-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ae={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=(0,_t.A)(Ae,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon exclamation-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ve={name:"LockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ye=(0,_t.A)(ve,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon lock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ce={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},we=(0,_t.A)(Ce,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon check-bold-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var be=n(66001),_e=n(96078);const Ee={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xe=(0,_t.A)(Ee,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon triangle-small-down-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M8 9H16L12 16"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Se={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=(0,_t.A)(Se,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var ke=n(2413);const Te={name:"FileUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ne=(0,_t.A)(Te,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon file-upload-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,De={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:xe,NcActions:W.A,NcActionButton:X.A},mixins:[Xt,Ot],props:{share:{type:Object,required:!0}},emits:["open-sharing-details"],data:()=>({selectedOption:""}),computed:{ariaLabel(){return t("files_sharing",'Quick share options, the current selected is "{selectedOption}"',{selectedOption:this.selectedOption})},canViewText:()=>t("files_sharing","View only"),canEditText:()=>t("files_sharing","Can edit"),fileDropText:()=>t("files_sharing","File request"),customPermissionsText:()=>t("files_sharing","Custom permissions"),preSelectedOption(){return(this.share.permissions&~Bt.SHARE)===Lt.READ_ONLY?this.canViewText:this.share.permissions===Lt.ALL||this.share.permissions===Lt.ALL_FILE?this.canEditText:(this.share.permissions&~Bt.SHARE)===Lt.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const t=[{label:this.canViewText,icon:Ie},{label:this.canEditText,icon:ke.A}];return this.supportsFileDrop&&t.push({label:this.fileDropText,icon:Ne}),t.push({label:this.customPermissionsText,icon:ue}),t},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const t=this.share.type??this.share.shareType;return[ot.I.Link,ot.I.Email].includes(t)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?Lt.ALL:Lt.ALL_FILE;case this.fileDropText:return Lt.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return Lt.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,Dt.B1)("update:share",(t=>{t.id===this.share.id&&(this.share.permissions=t.permissions,this.selectedOption=this.preSelectedOption)}))},unmounted(){(0,Dt.al)("update:share")},methods:{selectOption(t){this.selectedOption=t,t===this.customPermissionsText?this.$emit("open-sharing-details"):(this.share.permissions=this.dropDownPermissionValue,this.queueUpdate("permissions"),this.$refs.quickShareActions.$refs.menuButton.$el.focus())}}},Pe=De;var Re=n(88522),Be={};Be.styleTagTransform=y(),Be.setAttributes=g(),Be.insert=p().bind(null,"head"),Be.domAPI=u(),Be.insertStyleElement=m(),c()(Re.A,Be),Re.A&&Re.A.locals&&Re.A.locals;const Le=(0,_t.A)(Pe,(function(){var t=this,e=t._self._c;return e("NcActions",{ref:"quickShareActions",staticClass:"share-select",attrs:{"menu-name":t.selectedOption,"aria-label":t.ariaLabel,type:"tertiary-no-background",disabled:!t.share.canEdit,"force-name":""},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DropdownIcon",{attrs:{size:15}})]},proxy:!0}])},[t._v(" "),t._l(t.options,(function(i){return e("NcActionButton",{key:i.label,attrs:{type:"radio","model-value":i.label===t.selectedOption,"close-after-click":""},on:{click:function(e){return t.selectOption(i.label)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.icon,{tag:"component"})]},proxy:!0}],null,!0)},[t._v("\n\t\t"+t._s(i.label)+"\n\t")])}))],2)}),[],!1,null,"2aa230f1",null).exports;var Oe=n(4604);const Me={name:"ClockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ue=(0,_t.A)(Me,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon clock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,$e={name:"ShareExpiryTime",components:{NcButton:ut.A,NcPopover:ct.N,NcDateTime:Oe.A,ClockIcon:Ue},props:{share:{type:Object,required:!0}},computed:{expiryTime(){return this.share?.expireDate?new Date(this.share.expireDate).getTime():null},timeFormat:()=>({dateStyle:"full",timeStyle:"short"})}};var Fe=n(38310),Ve={};Ve.styleTagTransform=y(),Ve.setAttributes=g(),Ve.insert=p().bind(null,"head"),Ve.domAPI=u(),Ve.insertStyleElement=m(),c()(Fe.A,Ve),Fe.A&&Fe.A.locals&&Fe.A.locals;const je=(0,_t.A)($e,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"share-expiry-time"},[e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[t.expiryTime?e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary","aria-label":t.t("files_sharing","Share expiration: ")+new Date(t.expiryTime).toLocaleString()},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ClockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,3754271979)}):t._e()]},proxy:!0}])},[t._v(" "),e("h3",{staticClass:"hint-heading"},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Share Expiration"))+"\n\t\t")]),t._v(" "),t.expiryTime?e("p",{staticClass:"hint-body"},[e("NcDateTime",{attrs:{timestamp:t.expiryTime,format:t.timeFormat,"relative-time":!1}}),t._v(" ("),e("NcDateTime",{attrs:{timestamp:t.expiryTime}}),t._v(")\n\t\t")],1):t._e()])],1)}),[],!1,null,"66d8c844",null).exports,ze={name:"ExternalShareAction",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null}},computed:{data(){return this.action.data(this)}}},qe=(0,_t.A)(ze,(function(){var t=this;return(0,t._self._c)(t.data.is,t._g(t._b({tag:"Component"},"Component",t.data,!1),t.action.handlers),[t._v("\n\t"+t._s(t.data.text)+"\n")])}),[],!1,null,null,null).exports,He={name:"SharingEntryLink",components:{ExternalShareAction:qe,NcActions:W.A,NcActionButton:X.A,NcActionCheckbox:ae.N,NcActionInput:oe.A,NcActionLink:jt.A,NcActionText:zt.A,NcActionSeparator:le.A,NcAvatar:_.A,NcDialog:ce.A,VueQrcode:se(),Tune:ue,IconCalendarBlank:pe,IconQr:ge,ErrorIcon:me,LockIcon:ye,CheckIcon:we,ClipboardIcon:yt.A,CloseIcon:be.A,PlusIcon:_e.A,SharingEntryQuickShareSelect:Le,ShareExpiryTime:je},mixins:[Xt,Ot],props:{canReshare:{type:Boolean,default:!0},index:{type:Number,default:null}},data:()=>({shareCreationComplete:!1,copySuccess:!0,copied:!1,defaultExpirationDateEnabled:!1,pending:!1,ExternalLegacyLinkActions:OCA.Sharing.ExternalLinkActions.state,ExternalShareActions:OCA.Sharing.ExternalShareActions.state,logger:(0,ft.YK)().setApp("files_sharing").detectUser().build(),showQRCode:!1}),computed:{title(){if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?t("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName}):t("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName});if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?t("files_sharing","File request ({label})",{label:this.share.label.trim()}):t("files_sharing","Mail share ({label})",{label:this.share.label.trim()}):t("files_sharing","Share link ({label})",{label:this.share.label.trim()});if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?t("files_sharing","File request"):t("files_sharing","Mail share");if(null===this.index)return t("files_sharing","Share link")}return this.index>=1?t("files_sharing","Share link ({index})",{index:this.index}):t("files_sharing","Create public link")},subtitle(){return this.isEmailShareType&&this.title!==this.share.shareWith?this.share.shareWith:null},passwordExpirationTime(){if(null===this.share.passwordExpirationTime)return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword)},pendingDataIsMissing(){return this.pendingPassword||this.pendingEnforcedPassword||this.pendingDefaultExpirationDate||this.pendingEnforcedExpirationDate},pendingPassword(){return this.config.enableLinkPasswordByDefault&&this.isPendingShare},pendingEnforcedPassword(){return this.config.enforcePasswordForPublicLink&&this.isPendingShare},pendingEnforcedExpirationDate(){return this.config.isDefaultExpireDateEnforced&&this.isPendingShare},pendingDefaultExpirationDate(){return(this.config.defaultExpirationDate instanceof Date||!isNaN(new Date(this.config.defaultExpirationDate).getTime()))&&this.isPendingShare},isPendingShare(){return!(!this.share||this.share.id)},sharePolicyHasEnforcedProperties(){return this.config.enforcePasswordForPublicLink||this.config.isDefaultExpireDateEnforced},enforcedPropertiesMissing(){if(!this.sharePolicyHasEnforcedProperties)return!1;if(!this.share)return!0;if(this.share.id)return!0;const t=this.config.enforcePasswordForPublicLink&&!this.share.password,e=this.config.isDefaultExpireDateEnforced&&!this.share.expireDate;return t||e},hasUnsavedPassword(){return void 0!==this.share.newPassword},shareLink(){return(0,o.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,o.$_)()})},actionsTooltip(){return t("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing",'Copy public link of "{title}" to clipboard',{title:this.title})},externalLegacyLinkActions(){return this.ExternalLegacyLinkActions.actions},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&!t.advanced))},isPasswordPolicyEnabled(){return"object"==typeof this.config.passwordPolicy},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))},isFileRequest(){return this.share.isFileRequest}},mounted(){this.defaultExpirationDateEnabled=this.config.defaultExpirationDate instanceof Date,this.share&&this.isNewShare&&(this.share.expireDate=this.defaultExpirationDateEnabled?this.formatDateToString(this.config.defaultExpirationDate):"")},methods:{shareRequiresReview(t){return!t&&(this.defaultExpirationDateEnabled||this.config.enableLinkPasswordByDefault)},async onNewLinkShare(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.logger.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const i={share_type:ot.I.Link};if(this.config.isDefaultExpireDateEnforced&&(i.expiration=this.formatDateToString(this.config.defaultExpirationDate)),this.logger.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===e)){this.pending=!0,this.shareCreationComplete=!1,this.logger.info("Share policy requires a review or has mandated properties (password, expirationDate)..."),(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&(i.password=await Gt(!0));const t=new At(i),e=await new Promise((e=>{this.$emit("add:share",t,e)}));this.open=!1,this.pending=!1,e.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{this.logger.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,this.logger.info("Share created on server",this.share)}catch(t){return this.pending=!1,this.logger.error("Error creating share",t),!1}return!0}return this.open=!0,(0,mt.Qg)(t("files_sharing","Error, please enter proper password and/or expiration date")),!1}const e=new At(i);await this.pushNewLinkShare(e),this.shareCreationComplete=!0}},async pushNewLinkShare(e,i){try{if(this.loading)return!0;this.loading=!0,this.errors={};const n={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:ot.I.Link,password:e.password,expireDate:e.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};console.debug("Creating link share with options",n);const r=await this.createShare(n);let s;this.open=!1,this.shareCreationComplete=!0,console.debug("Link share created",r),s=i?await new Promise((t=>{this.$emit("update:share",r,t)})):await new Promise((t=>{this.$emit("add:share",r,t)})),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||s.copyLink(),(0,mt.Te)(t("files_sharing","Link share created"))}catch(e){const i=e?.response?.data?.ocs?.meta?.message;if(!i)return(0,mt.Qg)(t("files_sharing","Error while creating the share")),void console.error(e);throw i.match(/password/i)?this.onSyncError("password",i):i.match(/date/i)?this.onSyncError("expireDate",i):this.onSyncError("pending",i),e}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.copyButton.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}},onPasswordChange(t){this.$set(this.share,"newPassword",t)},onPasswordDisable(){this.share.password="",this.$delete(this.share,"newPassword"),this.share.id&&this.queueUpdate("password")},onPasswordSubmit(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim(),this.queueUpdate("password"))},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},onMenuClose(){this.onPasswordSubmit(),this.onNoteSubmit()},onExpirationDateToggleUpdate(t){this.share.expireDate=t?this.formatDateToString(this.config.defaultExpirationDate):""},expirationDateChanged(t){const e=t?.target?.value,i=!!e&&!isNaN(new Date(e).getTime());this.defaultExpirationDateEnabled=i},onCancel(){this.shareCreationComplete||this.$emit("remove:share",this.share)}}},Ge=He;var Ye=n(96819),We={};We.styleTagTransform=y(),We.setAttributes=g(),We.insert=p().bind(null,"head"),We.domAPI=u(),We.insertStyleElement=m(),c()(Ye.A,We),Ye.A&&Ye.A.locals&&Ye.A.locals;const Xe={name:"SharingLinkList",components:{SharingEntryLink:(0,_t.A)(Ge,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry sharing-entry__link",class:{"sharing-entry--share":t.share}},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":!0,"icon-class":t.isEmailShareType?"avatar-link-share icon-mail-white":"avatar-link-share icon-public-white"}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title",attrs:{title:t.title}},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t\t"+t._s(t.subtitle)+"\n\t\t\t")]):t._e(),t._v(" "),t.share&&void 0!==t.share.permissions?e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}}):t._e()],1),t._v(" "),e("div",{staticClass:"sharing-entry__actions"},[t.share&&t.share.expireDate?e("ShareExpiryTime",{attrs:{share:t.share}}):t._e(),t._v(" "),e("div",[t.share&&(!t.isEmailShareType||t.isFileRequest)&&t.share.token?e("NcActions",{ref:"copyButton",staticClass:"sharing-entry__copy"},[e("NcActionButton",{attrs:{"aria-label":t.copyLinkTooltip,title:t.copyLinkTooltip,href:t.shareLink},on:{click:function(e){return e.preventDefault(),t.copyLink.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4269614823)})],1):t._e()],1)],1)]),t._v(" "),!t.pending&&t.pendingDataIsMissing?e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onCancel}},[t.errors.pending?e("NcActionText",{staticClass:"error",scopedSlots:t._u([{key:"icon",fn:function(){return[e("ErrorIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1966124155)},[t._v("\n\t\t\t"+t._s(t.errors.pending)+"\n\t\t")]):e("NcActionText",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Please enter the following required information before creating the share"))+"\n\t\t")]),t._v(" "),t.pendingPassword?e("NcActionCheckbox",{staticClass:"share-link-password-checkbox",attrs:{checked:t.isPasswordProtected,disabled:t.config.enforcePasswordForPublicLink||t.saving},on:{"update:checked":function(e){t.isPasswordProtected=e},uncheck:t.onPasswordDisable}},[t._v("\n\t\t\t"+t._s(t.config.enforcePasswordForPublicLink?t.t("files_sharing","Password protection (enforced)"):t.t("files_sharing","Password protection"))+"\n\t\t")]):t._e(),t._v(" "),t.pendingEnforcedPassword||t.share.password?e("NcActionInput",{staticClass:"share-link-password",attrs:{label:t.t("files_sharing","Enter a password"),value:t.share.password,disabled:t.saving,required:t.config.enableLinkPasswordByDefault||t.config.enforcePasswordForPublicLink,minlength:t.isPasswordPolicyEnabled&&t.config.passwordPolicy.minLength,autocomplete:"new-password"},on:{"update:value":function(e){return t.$set(t.share,"password",e)},submit:function(e){return t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("LockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2056568168)}):t._e(),t._v(" "),t.pendingDefaultExpirationDate?e("NcActionCheckbox",{staticClass:"share-link-expiration-date-checkbox",attrs:{checked:t.defaultExpirationDateEnabled,disabled:t.pendingEnforcedExpirationDate||t.saving},on:{"update:checked":function(e){t.defaultExpirationDateEnabled=e},"update:model-value":t.onExpirationDateToggleUpdate}},[t._v("\n\t\t\t"+t._s(t.config.isDefaultExpireDateEnforced?t.t("files_sharing","Enable link expiration (enforced)"):t.t("files_sharing","Enable link expiration"))+"\n\t\t")]):t._e(),t._v(" "),(t.pendingDefaultExpirationDate||t.pendingEnforcedExpirationDate)&&t.defaultExpirationDateEnabled?e("NcActionInput",{staticClass:"share-link-expire-date",attrs:{"data-cy-files-sharing-expiration-date-input":"",label:t.pendingEnforcedExpirationDate?t.t("files_sharing","Enter expiration date (enforced)"):t.t("files_sharing","Enter expiration date"),disabled:t.saving,"is-native-picker":!0,"hide-label":!0,value:new Date(t.share.expireDate),type:"date",min:t.dateTomorrow,max:t.maxExpirationDateEnforced},on:{"update:model-value":t.onExpirationChange,change:t.expirationDateChanged},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlank",{attrs:{size:20}})]},proxy:!0}],null,!1,3418578971)}):t._e(),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CheckIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2630571749)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Create share"))+"\n\t\t")]),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onCancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t")])],1):t.loading?e("div",{staticClass:"icon-loading-small sharing-entry__loading"}):e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onMenuClose}},[t.share?[t.share.canEdit&&t.canReshare?[e("NcActionButton",{attrs:{disabled:t.saving,"close-after-click":!0},on:{click:function(e){return e.preventDefault(),t.openSharingDetails.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Tune",{attrs:{size:20}})]},proxy:!0}],null,!1,1300586850)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Customize link"))+"\n\t\t\t\t")])]:t._e(),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){e.preventDefault(),t.showQRCode=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconQr",{attrs:{size:20}})]},proxy:!0}],null,!1,1082198240)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Generate QR code"))+"\n\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),t._l(t.externalLegacyLinkActions,(function(i,n){let{icon:r,url:s,name:a}=i;return e("NcActionLink",{key:n,attrs:{href:s(t.shareLink),icon:r,target:"_blank"}},[t._v("\n\t\t\t\t"+t._s(a)+"\n\t\t\t")])})),t._v(" "),!t.isEmailShareType&&t.canReshare?e("NcActionButton",{staticClass:"new-share-link",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("PlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2953566425)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Add another link"))+"\n\t\t\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{disabled:t.saving},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t\t\t")]):t._e()]:t.canReshare?e("NcActionButton",{staticClass:"new-share-link",attrs:{title:t.t("files_sharing","Create a new share link"),"aria-label":t.t("files_sharing","Create a new share link"),icon:t.loading?"icon-loading-small":"icon-add"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}}}):t._e()],2),t._v(" "),t.showQRCode?e("NcDialog",{attrs:{size:"normal",open:t.showQRCode,name:t.title,"close-on-click-outside":!0},on:{"update:open":function(e){t.showQRCode=e},close:function(e){t.showQRCode=!1}}},[e("div",{staticClass:"qr-code-dialog"},[e("VueQrcode",{staticClass:"qr-code-dialog__img",attrs:{tag:"img",value:t.shareLink}})],1)]):t._e()],1)}),[],!1,null,"4d06a90a",null).exports},mixins:[Ot],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,dt.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===ot.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:b.t,addShare(t,e){this.shares.push(t),this.awaitForShare(t,e)},awaitForShare(t,e){this.$nextTick((()=>{const i=this.$children.find((e=>e.share===t));i&&e(i)}))},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}},Qe=(0,_t.A)(Xe,(function(){var t=this,e=t._self._c;return t.canLinkShare?e("ul",{staticClass:"sharing-link-list",attrs:{"aria-label":t.t("files_sharing","Link shares")}},[!t.hasLinkShares&&t.canReshare?e("SharingEntryLink",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo},on:{"add:share":t.addShare}}):t._e(),t._v(" "),t.hasShares?t._l(t.shares,(function(i,n){return e("SharingEntryLink",{key:i.id,attrs:{index:t.shares.length>1?n+1:null,"can-reshare":t.canReshare,share:t.shares[n],"file-info":t.fileInfo},on:{"update:share":[function(e){return t.$set(t.shares,n,e)},function(e){return t.awaitForShare(...arguments)}],"add:share":function(e){return t.addShare(...arguments)},"remove:share":t.removeShare,"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})):t._e()],2):t._e()}),[],!1,null,null,null).exports;var Ze=n(26690);const Ke={name:"SharingEntry",components:{NcButton:ut.A,NcAvatar:_.A,DotsHorizontalIcon:Ze.A,NcSelect:E.A,ShareExpiryTime:je,SharingEntryQuickShareSelect:Le},mixins:[Xt,Ot],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===ot.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===ot.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===ot.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===ot.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===ot.I.Guest&&(e+=` (${t("files_sharing","guest")})`),!this.isShareOwner&&this.share.ownerDisplayName&&(e+=" "+t("files_sharing","by {initiator}",{initiator:this.share.ownerDisplayName})),e},tooltip(){if(this.share.owner!==this.share.uidFileOwner){const e={user:this.share.shareWithDisplayName,owner:this.share.ownerDisplayName};return this.share.type===ot.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===ot.I.Room?t("files_sharing","Shared with the conversation {user} by {owner}",e):t("files_sharing","Shared with {user} by {owner}",e)}return null},hasStatus(){return this.share.type===ot.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Je=n(70162),ti={};ti.styleTagTransform=y(),ti.setAttributes=g(),ti.insert=p().bind(null,"head"),ti.domAPI=u(),ti.insertStyleElement=m(),c()(Je.A,ti),Je.A&&Je.A.locals&&Je.A.locals;const ei={name:"SharingList",components:{SharingEntry:(0,_t.A)(Ke,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.type!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e(t.share.shareWithLink?"a":"div",{tag:"component",staticClass:"sharing-entry__summary__desc",attrs:{title:t.tooltip,"aria-label":t.tooltip,href:t.share.shareWithLink}},[e("span",[t._v(t._s(t.title)+"\n\t\t\t\t"),t.isUnique?t._e():e("span",{staticClass:"sharing-entry__summary__desc-unique"},[t._v(" ("+t._s(t.share.shareWithDisplayNameUnique)+")")]),t._v(" "),t.hasStatus&&t.share.status.message?e("small",[t._v("("+t._s(t.share.status.message)+")")]):t._e()])]),t._v(" "),e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}})],1),t._v(" "),t.share&&t.share.expireDate?e("ShareExpiryTime",{attrs:{share:t.share}}):t._e(),t._v(" "),t.share.canEdit?e("NcButton",{staticClass:"sharing-entry__action",attrs:{"data-cy-files-sharing-share-actions":"","aria-label":t.t("files_sharing","Open Sharing Details"),type:"tertiary"},on:{click:function(e){return t.openSharingDetails(t.share)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1700783217)}):t._e()],1)}),[],!1,null,"2dbd45b5",null).exports},mixins:[Ot],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0}},setup:()=>({t:b.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===ot.I.User&&t.shareWithDisplayName===e.shareWithDisplayName)).length<=1}}},ii=(0,_t.A)(ei,(function(){var t=this,e=t._self._c;return e("ul",{staticClass:"sharing-sharee-list",attrs:{"aria-label":t.t("files_sharing","Shares")}},t._l(t.shares,(function(i){return e("SharingEntry",{key:i.id,attrs:{"file-info":t.fileInfo,share:i,"is-unique":t.isUnique(i)},on:{"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})),1)}),[],!1,null,null,null).exports;var ni=n(32073),ri=n(48046),si=n(16879),ai=n(59892),oi=n(16044),li=n(177);const ci={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hi=(0,_t.A)(ci,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ui={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},di=(0,_t.A)(ui,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon email-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var pi=n(36600),fi=n(43261);const gi={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ai=(0,_t.A)(gi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon share-circle-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,mi={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vi=(0,_t.A)(mi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,yi={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ci=(0,_t.A)(yi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var wi=n(65422),bi=n(25384),_i=n(33388);const Ei={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xi=(0,_t.A)(Ei,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Si={name:"SharingDetailsTab",components:{NcAvatar:_.A,NcButton:ut.A,NcCheckboxRadioSwitch:ni.A,NcDateTimePickerNative:ri.A,NcInputField:si.A,NcLoadingIcon:ai.A,NcPasswordField:oi.A,NcTextArea:li.A,CloseIcon:be.A,CircleIcon:hi,EditIcon:ke.A,ExternalShareAction:qe,LinkIcon:pi.A,GroupIcon:fi.A,ShareIcon:Ai,UserIcon:vi,UploadIcon:wi.A,ViewIcon:Ci,MenuDownIcon:bi.A,MenuUpIcon:_i.A,DotsHorizontalIcon:Ze.A,Refresh:xi},mixins:[Rt,Xt],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:Lt.ALL.toString(),revertSharingPermission:Lt.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:Lt,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case ot.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case ot.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case ot.I.Link:return t("files_sharing","Share link");case ot.I.Group:return t("files_sharing","Share with group");case ot.I.Room:return t("files_sharing","Share in conversation");case ot.I.Remote:{const[e,i]=this.share.shareWith.split("@");return t("files_sharing","Share with {user} on remote server {server}",{user:e,server:i})}case ot.I.RemoteGroup:return t("files_sharing","Share with remote group");case ot.I.Guest:return t("files_sharing","Share with guest");default:return this.share.id?t("files_sharing","Update share"):t("files_sharing","Create share")}},allPermissions(){return this.isFolder?this.bundledPermissions.ALL.toString():this.bundledPermissions.ALL_FILE.toString()},canEdit:{get(){return this.share.hasUpdatePermission},set(t){this.updateAtomicPermissions({isEditChecked:t})}},canCreate:{get(){return this.share.hasCreatePermission},set(t){this.updateAtomicPermissions({isCreateChecked:t})}},canDelete:{get(){return this.share.hasDeletePermission},set(t){this.updateAtomicPermissions({isDeleteChecked:t})}},canReshare:{get(){return this.share.hasSharePermission},set(t){this.updateAtomicPermissions({isReshareChecked:t})}},showInGridView:{get(){return this.getShareAttribute("config","grid_view",!1)},set(t){this.setShareAttribute("config","grid_view",t)}},canDownload:{get(){return this.getShareAttribute("permissions","download",!0)},set(t){this.setShareAttribute("permissions","download",t)}},hasRead:{get(){return this.share.hasReadPermission},set(t){this.updateAtomicPermissions({isReadChecked:t})}},hasExpirationDate:{get(){return this.isValidShareAttribute(this.share.expireDate)},set(t){this.share.expireDate=t?this.formatDateToString(this.defaultExpiryDate):""}},isFolder(){return"dir"===this.fileInfo.type},isSetDownloadButtonVisible(){return this.isFolder||["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation"].includes(this.fileInfo.mimetype)},isPasswordEnforced(){return this.isPublicShare&&this.config.enforcePasswordForPublicLink},defaultExpiryDate(){return(this.isGroupShare||this.isUserShare)&&this.config.isDefaultInternalExpireDateEnabled?new Date(this.config.defaultInternalExpirationDate):this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?new Date(this.config.defaultRemoteExpireDateEnabled):this.isPublicShare&&this.config.isDefaultExpireDateEnabled?new Date(this.config.defaultExpirationDate):new Date((new Date).setDate((new Date).getDate()+1))},isUserShare(){return this.share.type===ot.I.User},isGroupShare(){return this.share.type===ot.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email)},hasFileDropPermissions(){return this.share.permissions===this.bundledPermissions.FILE_DROP},shareButtonText(){return this.isNewShare?t("files_sharing","Save share"):t("files_sharing","Update share")},resharingIsPossible(){return this.config.isResharingAllowed&&this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email},canSetEdit(){return this.fileInfo.sharePermissions&OC.PERMISSION_UPDATE||this.canEdit},canSetCreate(){return this.fileInfo.sharePermissions&OC.PERMISSION_CREATE||this.canCreate},canSetDelete(){return this.fileInfo.sharePermissions&OC.PERMISSION_DELETE||this.canDelete},canSetReshare(){return this.fileInfo.sharePermissions&OC.PERMISSION_SHARE||this.canReshare},canSetDownload(){return this.fileInfo.canDownload()||this.canDownload},canRemoveReadPermission(){return this.allowsFileDrop&&(this.share.type===ot.I.Link||this.share.type===ot.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPublicShare||!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword||void 0===OC.appswebroots.spreed)},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"download"===t.key&&"permissions"===t.scope&&!1===t.value))},customPermissionsList(){const t={[Bt.READ]:this.t("files_sharing","Read"),[Bt.CREATE]:this.t("files_sharing","Create"),[Bt.UPDATE]:this.t("files_sharing","Edit"),[Bt.SHARE]:this.t("files_sharing","Share"),[Bt.DELETE]:this.t("files_sharing","Delete")};return[Bt.READ,...this.isFolder?[Bt.CREATE]:[],Bt.UPDATE,...this.resharingIsPossible?[Bt.SHARE]:[],...this.isFolder?[Bt.DELETE]:[]].filter((t=>{return e=this.share.permissions,i=t,e!==Bt.NONE&&(e&i)===i;var e,i})).map(((e,i)=>0===i?t[e]:t[e].toLocaleLowerCase((0,b.Z0)()))).join(", ")},advancedControlExpandedValue(){return this.advancedSectionAccordionExpanded?"true":"false"},errorPasswordLabel(){if(this.passwordError)return t("files_sharing","Password field cannot be empty")},passwordHint(){if(!this.isNewShare&&!this.hasUnsavedPassword)return t("files_sharing","Replace current password")},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&t.advanced))}},watch:{setCustomPermissions(t){this.sharingPermission=t?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),gt.debug("Share object received",{share:this.share}),gt.debug("Configuration object received",{config:this.config})},mounted(){this.$refs.quickPermissions?.querySelector("input:checked")?.focus()},methods:{setShareAttribute(t,e,i){this.share.attributes||this.$set(this.share,"attributes",[]);const n=this.share.attributes.find((i=>i.scope===t||i.key===e));n?n.value=i:this.share.attributes.push({scope:t,key:e,value:i})},getShareAttribute(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const n=this.share.attributes?.find((i=>i.scope===t&&i.key===e));return n?.value??i},async generateNewToken(){if(!this.loadingToken){this.loadingToken=!0;try{this.share.token=await(async()=>{const{data:t}=await Z.Ay.get((0,o.KT)("/apps/files_sharing/api/v1/token"));return t.ocs.data.token})()}catch(e){(0,mt.Qg)(t("files_sharing","Failed to generate a new token"))}this.loadingToken=!1}},cancel(){this.share.token=this.initialToken,this.$emit("close-sharing-details")},updateAtomicPermissions(){let{isReadChecked:t=this.hasRead,isEditChecked:e=this.canEdit,isCreateChecked:i=this.canCreate,isDeleteChecked:n=this.canDelete,isReshareChecked:r=this.canReshare}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.isFolder||!i&&!n||(gt.debug("Ignoring create/delete permissions for file share — only available for folders"),i=!1,n=!1);const s=(t?Bt.READ:0)|(i?Bt.CREATE:0)|(n?Bt.DELETE:0)|(e?Bt.UPDATE:0)|(r?Bt.SHARE:0);this.share.permissions=s},expandCustomPermissions(){this.advancedSectionAccordionExpanded||(this.advancedSectionAccordionExpanded=!0),this.toggleCustomPermissions()},toggleCustomPermissions(t){const e="custom"===this.sharingPermission;this.revertSharingPermission=e?"custom":t,this.setCustomPermissions=e},async initializeAttributes(){if(this.isNewShare)return(this.config.enableLinkPasswordByDefault||this.isPasswordEnforced)&&this.isPublicShare&&(this.$set(this.share,"newPassword",await Gt(!0)),this.$set(this.share,"password",this.share.newPassword),this.advancedSectionAccordionExpanded=!0),this.isPublicShare&&this.config.isDefaultExpireDateEnabled?this.share.expireDate=this.config.defaultExpirationDate.toDateString():this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?this.share.expireDate=this.config.defaultRemoteExpirationDateString.toDateString():this.config.isDefaultInternalExpireDateEnabled&&(this.share.expireDate=this.config.defaultInternalExpirationDate.toDateString()),void(this.isValidShareAttribute(this.share.expireDate)&&(this.advancedSectionAccordionExpanded=!0));!this.isValidShareAttribute(this.share.expireDate)&&this.isExpiryDateEnforced&&(this.hasExpirationDate=!0),(this.isValidShareAttribute(this.share.password)||this.isValidShareAttribute(this.share.expireDate)||this.isValidShareAttribute(this.share.label))&&(this.advancedSectionAccordionExpanded=!0),this.share.note&&(this.writeNoteToRecipientIsChecked=!0)},handleShareType(){"shareType"in this.share?this.share.type=this.share.shareType:this.share.share_type&&(this.share.type=this.share.share_type)},handleDefaultPermissions(){if(this.isNewShare){const t=this.config.defaultPermissions;t===Lt.READ_ONLY||t===Lt.ALL?this.sharingPermission=t.toString():(this.sharingPermission="custom",this.share.permissions=t,this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)}this.canRemoveReadPermission||(this.hasRead=!0)},handleCustomPermissions(){this.isNewShare||!this.hasCustomPermissions&&!this.share.setCustomPermissions?this.share.permissions&&(this.sharingPermission=this.share.permissions.toString()):(this.sharingPermission="custom",this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)},initializePermissions(){this.handleShareType(),this.handleDefaultPermissions(),this.handleCustomPermissions()},async saveShare(){const t=["permissions","attributes","note","expireDate"],e=["label","password","hideDownload"];this.config.allowCustomTokens&&e.push("token"),this.isPublicShare&&t.push(...e);const i=parseInt(this.sharingPermission);if(this.setCustomPermissions?this.updateAtomicPermissions():this.share.permissions=i,this.isFolder||this.share.permissions!==Lt.ALL||(this.share.permissions=Lt.ALL_FILE),this.writeNoteToRecipientIsChecked||(this.share.note=""),this.isPasswordProtected?this.hasUnsavedPassword&&this.isValidShareAttribute(this.share.newPassword)?(this.share.password=this.share.newPassword,this.$delete(this.share,"newPassword")):this.isPasswordEnforced&&this.isNewShare&&!this.isValidShareAttribute(this.share.password)&&(this.passwordError=!0):this.share.password="",this.hasExpirationDate||(this.share.expireDate=""),this.isNewShare){const e={permissions:this.share.permissions,shareType:this.share.type,shareWith:this.share.shareWith,attributes:this.share.attributes,note:this.share.note,fileInfo:this.fileInfo};let i;e.expireDate=this.hasExpirationDate?this.share.expireDate:"",this.isPasswordProtected&&(e.password=this.share.password);try{this.creating=!0,i=await this.addShare(e)}catch(t){return void(this.creating=!1)}this.share._share.id=i.id,await this.queueUpdate(...t);for(const e of t)if(e in i&&e in this.share)try{i[e]=this.share[e]}catch{i._share[e]=this.share[e]}this.share=i,this.creating=!1,this.$emit("add:share",this.share)}else this.$emit("update:share",this.share),(0,Dt.Ic)("update:share",this.share),this.queueUpdate(...t);await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$refs.externalLinkActions?.length>0&&await Promise.allSettled(this.$refs.externalLinkActions.map((t=>"function"!=typeof t.$children.at(0)?.onSave?Promise.resolve():t.$children.at(0)?.onSave?.()))),this.$emit("close-sharing-details")},async addShare(t){gt.debug("Adding a new share from the input for",{share:t});const e=this.path;try{return await this.createShare({path:e,shareType:t.shareType,shareWith:t.shareWith,permissions:t.permissions,expireDate:t.expireDate,attributes:JSON.stringify(t.attributes),...t.note?{note:t.note}:{},...t.password?{password:t.password}:{}})}catch(t){gt.error("Error while adding new share",{error:t})}},async removeShare(){await this.onDelete(),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$emit("close-sharing-details")},onPasswordChange(t){if(""===t)return this.$delete(this.share,"newPassword"),void(this.passwordError=this.isNewShare&&this.isPasswordEnforced);this.passwordError=!this.isValidShareAttribute(t),this.$set(this.share,"newPassword",t)},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},isValidShareAttribute:t=>![null,void 0].includes(t)&&t.trim().length>0,getShareTypeIcon(t){switch(t){case ot.I.Link:return pi.A;case ot.I.Guest:return vi;case ot.I.RemoteGroup:case ot.I.Group:return fi.A;case ot.I.Email:return di;case ot.I.Team:return hi;case ot.I.Room:case ot.I.Deck:case ot.I.ScienceMesh:return Ai;default:return null}}}};var Ii=n(59620),ki={};ki.styleTagTransform=y(),ki.setAttributes=g(),ki.insert=p().bind(null,"head"),ki.domAPI=u(),ki.insertStyleElement=m(),c()(Ii.A,ki),Ii.A&&Ii.A.locals&&Ii.A.locals;const Ti=(0,_t.A)(Si,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTabDetailsView"},[e("div",{staticClass:"sharingTabDetailsView__header"},[e("span",[t.isUserShare?e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.shareType!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}):t._e(),t._v(" "),e(t.getShareTypeIcon(t.share.type),{tag:"component",attrs:{size:32}})],1),t._v(" "),e("span",[e("h1",[t._v(t._s(t.title))])])]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__wrapper"},[e("div",{ref:"quickPermissions",staticClass:"sharingTabDetailsView__quick-permissions"},[e("div",[e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"read-only",checked:t.sharingPermission,value:t.bundledPermissions.READ_ONLY.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ViewIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","View only"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"upload-edit",checked:t.sharingPermission,value:t.allPermissions,name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("EditIcon",{attrs:{size:20}})]},proxy:!0}])},[t.allowsFileDrop?[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow upload and editing"))+"\n\t\t\t\t\t")]:[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow editing"))+"\n\t\t\t\t\t")]],2),t._v(" "),t.allowsFileDrop?e("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-sharing-share-permissions-bundle":"file-drop","button-variant":!0,checked:t.sharingPermission,value:t.bundledPermissions.FILE_DROP.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("UploadIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1083194048)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","File request"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.t("files_sharing","Upload only")))])]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"custom",checked:t.sharingPermission,value:"custom",name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.expandCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.customPermissionsList))])])],1)]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__advanced-control"},[e("NcButton",{attrs:{id:"advancedSectionAccordionAdvancedControl",type:"tertiary",alignment:"end-reverse","aria-controls":"advancedSectionAccordionAdvanced","aria-expanded":t.advancedControlExpandedValue},on:{click:function(e){t.advancedSectionAccordionExpanded=!t.advancedSectionAccordionExpanded}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.advancedSectionAccordionExpanded?e("MenuUpIcon"):e("MenuDownIcon")]},proxy:!0}])},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Advanced settings"))+"\n\t\t\t\t")])],1),t._v(" "),t.advancedSectionAccordionExpanded?e("div",{staticClass:"sharingTabDetailsView__advanced",attrs:{id:"advancedSectionAccordionAdvanced","aria-labelledby":"advancedSectionAccordionAdvancedControl",role:"region"}},[e("section",[t.isPublicShare?e("NcInputField",{staticClass:"sharingTabDetailsView__label",attrs:{autocomplete:"off",label:t.t("files_sharing","Share label"),value:t.share.label},on:{"update:value":function(e){return t.$set(t.share,"label",e)}}}):t._e(),t._v(" "),t.config.allowCustomTokens&&t.isPublicShare&&!t.isNewShare?e("NcInputField",{attrs:{autocomplete:"off",label:t.t("files_sharing","Share link token"),"helper-text":t.t("files_sharing","Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information."),"show-trailing-button":"","trailing-button-label":t.loadingToken?t.t("files_sharing","Generating…"):t.t("files_sharing","Generate new token"),value:t.share.token},on:{"update:value":function(e){return t.$set(t.share,"token",e)},"trailing-button-click":t.generateNewToken},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[t.loadingToken?e("NcLoadingIcon"):e("Refresh",{attrs:{size:20}})]},proxy:!0}],null,!1,4228062821)}):t._e(),t._v(" "),t.isPublicShare?[e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtected,disabled:t.isPasswordEnforced},on:{"update:checked":function(e){t.isPasswordProtected=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Set password"))+"\n\t\t\t\t\t")]),t._v(" "),t.isPasswordProtected?e("NcPasswordField",{attrs:{autocomplete:"new-password",value:t.hasUnsavedPassword?t.share.newPassword:"",error:t.passwordError,"helper-text":t.errorPasswordLabel||t.passwordHint,required:t.isPasswordEnforced&&t.isNewShare,label:t.t("files_sharing","Password")},on:{"update:value":t.onPasswordChange}}):t._e(),t._v(" "),t.isEmailShareType&&t.passwordExpirationTime?e("span",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expires {passwordExpirationTime}",{passwordExpirationTime:t.passwordExpirationTime}))+"\n\t\t\t\t\t")]):t.isEmailShareType&&null!==t.passwordExpirationTime?e("span",{attrs:{icon:"icon-error"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expired"))+"\n\t\t\t\t\t")]):t._e()]:t._e(),t._v(" "),t.canTogglePasswordProtectedByTalkAvailable?e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtectedByTalk},on:{"update:checked":[function(e){t.isPasswordProtectedByTalk=e},t.onPasswordProtectedByTalkChange]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Video verification"))+"\n\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.hasExpirationDate,disabled:t.isExpiryDateEnforced},on:{"update:checked":function(e){t.hasExpirationDate=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.isExpiryDateEnforced?t.t("files_sharing","Expiration date (enforced)"):t.t("files_sharing","Set expiration date"))+"\n\t\t\t\t")]),t._v(" "),t.hasExpirationDate?e("NcDateTimePickerNative",{attrs:{id:"share-date-picker",value:new Date(t.share.expireDate??t.dateTomorrow),min:t.dateTomorrow,max:t.maxExpirationDateEnforced,"hide-label":"",label:t.t("files_sharing","Expiration date"),placeholder:t.t("files_sharing","Expiration date"),type:"date"},on:{input:t.onExpirationChange}}):t._e(),t._v(" "),t.isPublicShare?e("NcCheckboxRadioSwitch",{attrs:{disabled:t.canChangeHideDownload,checked:t.share.hideDownload},on:{"update:checked":[function(e){return t.$set(t.share,"hideDownload",e)},function(e){return t.queueUpdate("hideDownload")}]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Hide download"))+"\n\t\t\t\t")]):e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDownload,checked:t.canDownload,"data-cy-files-sharing-share-permissions-checkbox":"download"},on:{"update:checked":function(e){t.canDownload=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Allow download and sync"))+"\n\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.writeNoteToRecipientIsChecked},on:{"update:checked":function(e){t.writeNoteToRecipientIsChecked=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Note to recipient"))+"\n\t\t\t\t")]),t._v(" "),t.writeNoteToRecipientIsChecked?[e("NcTextArea",{attrs:{label:t.t("files_sharing","Note to recipient"),placeholder:t.t("files_sharing","Enter a note for the share recipient"),value:t.share.note},on:{"update:value":function(e){return t.$set(t.share,"note",e)}}})]:t._e(),t._v(" "),t.isPublicShare&&t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{checked:t.showInGridView},on:{"update:checked":function(e){t.showInGridView=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Show files in grid view"))+"\n\t\t\t\t")]):t._e(),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,ref:"externalLinkActions",refInFor:!0,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.setCustomPermissions},on:{"update:checked":function(e){t.setCustomPermissions=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t")]),t._v(" "),t.setCustomPermissions?e("section",{staticClass:"custom-permissions-group"},[e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canRemoveReadPermission,checked:t.hasRead,"data-cy-files-sharing-share-permissions-checkbox":"read"},on:{"update:checked":function(e){t.hasRead=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Read"))+"\n\t\t\t\t\t")]),t._v(" "),t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetCreate,checked:t.canCreate,"data-cy-files-sharing-share-permissions-checkbox":"create"},on:{"update:checked":function(e){t.canCreate=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Create"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetEdit,checked:t.canEdit,"data-cy-files-sharing-share-permissions-checkbox":"update"},on:{"update:checked":function(e){t.canEdit=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Edit"))+"\n\t\t\t\t\t")]),t._v(" "),t.resharingIsPossible?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetReshare,checked:t.canReshare,"data-cy-files-sharing-share-permissions-checkbox":"share"},on:{"update:checked":function(e){t.canReshare=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Share"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDelete,checked:t.canDelete,"data-cy-files-sharing-share-permissions-checkbox":"delete"},on:{"update:checked":function(e){t.canDelete=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete"))+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__delete"},[t.isNewShare?t._e():e("NcButton",{attrs:{"aria-label":t.t("files_sharing","Delete share"),disabled:!1,readonly:!1,type:"tertiary"},on:{click:function(e){return e.preventDefault(),t.removeShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:16}})]},proxy:!0}],null,!1,2746485232)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete share"))+"\n\t\t\t\t\t")])],1)],2)]):t._e()]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__footer"},[e("div",{staticClass:"button-group"},[e("NcButton",{attrs:{"data-cy-files-sharing-share-editor-action":"cancel"},on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary","data-cy-files-sharing-share-editor-action":"save",disabled:t.creating},on:{click:t.saveShare},scopedSlots:t._u([t.creating?{key:"icon",fn:function(){return[e("NcLoadingIcon")]},proxy:!0}:null],null,!0)},[t._v("\n\t\t\t\t"+t._s(t.shareButtonText)+"\n\t\t\t\t")])],1)])])}),[],!1,null,"4d0ee506",null).exports,Ni={name:"SharingTab",components:{CollectionList:at,InfoIcon:lt.A,NcAvatar:_.A,NcButton:ut.A,NcPopover:ct.N,SharingEntryInternal:kt,SharingEntrySimple:Et,SharingInherited:ne,SharingInput:Ft,SharingLinkList:Qe,SharingList:ii,SharingDetailsTab:Ti},mixins:[Ot],data:()=>({config:new pt,deleteEvent:null,error:"",expirationInterval:null,loading:!0,fileInfo:null,reshare:null,sharedWithMe:{},shares:[],linkShares:[],externalShares:[],sections:OCA.Sharing.ShareTabSections.getSections(),projectsEnabled:(0,a.C)("core","projects_enabled",!1),showSharingDetailsView:!1,shareDetailsData:{},returnFocusElement:null,internalSharesHelpText:t("files_sharing","Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access."),externalSharesHelpText:t("files_sharing","Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID."),additionalSharesHelpText:t("files_sharing","Shares that are not part of the internal or external shares. This can be shares from apps or other sources.")}),computed:{isSharedWithMe(){return Object.keys(this.sharedWithMe).length>0},canReshare(){return!!(this.fileInfo.permissions&OC.PERMISSION_SHARE)||!!(this.reshare&&this.reshare.hasSharePermission&&this.config.isResharingAllowed)},internalShareInputPlaceholder(){return this.config.showFederatedSharesAsInternal?t("files_sharing","Share with accounts, teams, federated cloud IDs"):t("files_sharing","Share with accounts and teams")},externalShareInputPlaceholder(){return this.config.showFederatedSharesAsInternal?t("files_sharing","Email"):t("files_sharing","Email, federated cloud ID")}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,o.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=Z.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=Z.Ay.get(t,{params:{format:e,path:i,shared_with_me:!0}}),[s,a]=await Promise.all([n,r]);this.loading=!1,this.processSharedWithMe(a),this.processShares(s)}catch(e){this.error=e?.response?.data?.ocs?.meta?.message?e.response.data.ocs.meta.message:t("files_sharing","Unable to load the shares list"),this.loading=!1,console.error("Error loading the shares list",e)}},resetState(){clearInterval(this.expirationInterval),this.loading=!0,this.error="",this.sharedWithMe={},this.shares=[],this.linkShares=[],this.showSharingDetailsView=!1,this.shareDetailsData={}},updateExpirationSubtitle(e){const i=(0,ht.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ht.A)(1e3*i).fromNow()})),(0,ht.A)().unix()>i&&(clearInterval(this.expirationInterval),this.$set(this.sharedWithMe,"subtitle",t("files_sharing","this share just expired.")))},processShares(t){let{data:e}=t;if(e.ocs&&e.ocs.data&&e.ocs.data.length>0){const t=(0,s.My)(e.ocs.data.map((t=>new At(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);for(const e of t)[ot.I.Link,ot.I.Email].includes(e.type)?this.linkShares.push(e):[ot.I.Remote,ot.I.RemoteGroup].includes(e.type)?this.config.showFederatedSharesAsInternal?this.shares.push(e):this.externalShares.push(e):this.shares.push(e);gt.debug(`Processed ${this.linkShares.length} link share(s)`),gt.debug(`Processed ${this.shares.length} share(s)`),gt.debug(`Processed ${this.externalShares.length} external share(s)`)}},processSharedWithMe(e){let{data:i}=e;if(i.ocs&&i.ocs.data&&i.ocs.data[0]){const e=new At(i),n=function(e){return e.type===ot.I.Group?t("files_sharing","Shared with you and the group {group} by {owner}",{group:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Room?e.shareWithDisplayName?t("files_sharing","Shared with you and the conversation {conversation} by {owner}",{conversation:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you in a conversation by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1})}(e),r=e.ownerDisplayName,s=e.owner;this.sharedWithMe={displayName:r,title:n,user:s},this.reshare=e,e.expireDate&&(0,ht.A)(e.expireDate).unix()>(0,ht.A)().unix()&&(this.updateExpirationSubtitle(e),this.expirationInterval=setInterval(this.updateExpirationSubtitle,1e4,e))}else this.fileInfo&&void 0!==this.fileInfo.shareOwnerId&&this.fileInfo.shareOwnerId!==(0,r.HW)().uid&&(this.sharedWithMe={displayName:this.fileInfo.shareOwner,title:t("files_sharing","Shared with you by {owner}",{owner:this.fileInfo.shareOwner},void 0,{escape:!1}),user:this.fileInfo.shareOwnerId})},addShare(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{};t.type===ot.I.Email?this.linkShares.unshift(t):[ot.I.Remote,ot.I.RemoteGroup].includes(t.type)?this.config.showFederatedSharesAsInternal?this.shares.unshift(t):this.externalShares.unshift(t):this.shares.unshift(t),this.awaitForShare(t,e)},removeShare(t){const e=t.type===ot.I.Email||t.type===ot.I.Link?this.linkShares:this.shares,i=e.findIndex((e=>e.id===t.id));-1!==i&&e.splice(i,1)},awaitForShare(t,e){this.$nextTick((()=>{let i=this.$refs.shareList;t.type===ot.I.Email&&(i=this.$refs.linkShareList);const n=i.$children.find((e=>e.share===t));n&&e(n)}))},toggleShareDetailsView(t){if(!this.showSharingDetailsView)if(Array.from(document.activeElement.classList).some((t=>t.startsWith("action-")))){const t=document.activeElement.closest('[role="menu"]')?.id;this.returnFocusElement=document.querySelector(`[aria-controls="${t}"]`)}else this.returnFocusElement=document.activeElement;t&&(this.shareDetailsData=t),this.showSharingDetailsView=!this.showSharingDetailsView,this.showSharingDetailsView||this.$nextTick((()=>{this.returnFocusElement?.focus(),this.returnFocusElement=null}))}}},Di=Ni;var Pi=n(11672),Ri={};Ri.styleTagTransform=y(),Ri.setAttributes=g(),Ri.insert=p().bind(null,"head"),Ri.domAPI=u(),Ri.insertStyleElement=m(),c()(Pi.A,Ri),Pi.A&&Pi.A.locals&&Pi.A.locals;const Bi=(0,_t.A)(Di,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTab",class:{"icon-loading":t.loading}},[t.error?e("div",{staticClass:"emptycontent",class:{emptyContentWithSections:t.sections.length>0}},[e("div",{staticClass:"icon icon-error"}),t._v(" "),e("h2",[t._v(t._s(t.error))])]):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView,expression:"!showSharingDetailsView"}],staticClass:"sharingTab__content"},[t.isSharedWithMe?e("ul",[e("SharingEntrySimple",t._b({staticClass:"sharing-entry__reshare",scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.sharedWithMe.user,"display-name":t.sharedWithMe.displayName}})]},proxy:!0}],null,!1,3197855346)},"SharingEntrySimple",t.sharedWithMe,!1))],1):t._e(),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Internal shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Internal shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.internalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,reshare:t.reshare,shares:t.shares,placeholder:t.internalShareInputPlaceholder},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{ref:"shareList",attrs:{shares:t.shares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.canReshare&&!t.loading?e("SharingInherited",{attrs:{"file-info":t.fileInfo}}):t._e(),t._v(" "),e("SharingEntryInternal",{attrs:{"file-info":t.fileInfo}})],1),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","External shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","External shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.externalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,"is-external":!0,placeholder:t.externalShareInputPlaceholder,reshare:t.reshare,shares:t.shares},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{attrs:{shares:t.externalShares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}})],1),t._v(" "),t.sections.length>0&&!t.showSharingDetailsView?e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Additional shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Additional shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,1027936137)},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.additionalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t._l(t.sections,(function(i,n){return e("div",{key:n,ref:"section-"+n,refInFor:!0,staticClass:"sharingTab__additionalContent"},[e(i(t.$refs["section-"+n],t.fileInfo),{tag:"component",attrs:{"file-info":t.fileInfo}})],1)})),t._v(" "),t.projectsEnabled?e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView&&t.fileInfo,expression:"!showSharingDetailsView && fileInfo"}],staticClass:"sharingTab__additionalContent"},[e("CollectionList",{attrs:{id:`${t.fileInfo.id}`,type:"file",name:t.fileInfo.name}})],1):t._e()],2):t._e()]),t._v(" "),t.showSharingDetailsView?e("SharingDetailsTab",{attrs:{"file-info":t.shareDetailsData.fileInfo,share:t.shareDetailsData.share},on:{"close-sharing-details":t.toggleShareDetailsView,"add:share":t.addShare,"remove:share":t.removeShare}}):t._e()],1)}),[],!1,null,"872931a2",null).exports},70162:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-2dbd45b5]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-2dbd45b5]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-2dbd45b5]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-2dbd45b5],.sharing-entry__summary__desc small[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const o=a},79722:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},86886:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},88522:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-select[data-v-2aa230f1]{display:block}.share-select[data-v-2aa230f1] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=a},96819:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-4d06a90a]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4d06a90a]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4d06a90a]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4d06a90a]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4d06a90a]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4d06a90a]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4d06a90a]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4d06a90a] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4d06a90a]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4d06a90a]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4d06a90a],.sharing-entry .action-item~.sharing-entry__loading[data-v-4d06a90a]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-4d06a90a]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-4d06a90a]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4d06a90a]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=a},97380:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}","",{version:3,sources:["webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],names:[],mappings:"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ",sourcesContent:[".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}"],sourceRoot:""}]);const o=a}}]); +//# sourceMappingURL=4589-4589.js.map?v=55861ddae6afc02f82cc
\ No newline at end of file diff --git a/dist/1092-1092.js.license b/dist/4589-4589.js.license index 79efe190f54..79efe190f54 100644 --- a/dist/1092-1092.js.license +++ b/dist/4589-4589.js.license diff --git a/dist/4589-4589.js.map b/dist/4589-4589.js.map new file mode 100644 index 00000000000..d286f354416 --- /dev/null +++ b/dist/4589-4589.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4589-4589.js?v=55861ddae6afc02f82cc","mappings":"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","sources":["webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=872931a2&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0ae8","webpack://nextcloud/./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css?bb25","webpack:///nextcloud/node_modules/lodash-es/isObject.js","webpack:///nextcloud/node_modules/lodash-es/_freeGlobal.js","webpack:///nextcloud/node_modules/lodash-es/_root.js","webpack:///nextcloud/node_modules/lodash-es/now.js","webpack:///nextcloud/node_modules/lodash-es/_trimmedEndIndex.js","webpack:///nextcloud/node_modules/lodash-es/_baseTrim.js","webpack:///nextcloud/node_modules/lodash-es/_Symbol.js","webpack:///nextcloud/node_modules/lodash-es/_getRawTag.js","webpack:///nextcloud/node_modules/lodash-es/_objectToString.js","webpack:///nextcloud/node_modules/lodash-es/_baseGetTag.js","webpack:///nextcloud/node_modules/lodash-es/toNumber.js","webpack:///nextcloud/node_modules/lodash-es/isSymbol.js","webpack:///nextcloud/node_modules/lodash-es/isObjectLike.js","webpack:///nextcloud/node_modules/lodash-es/debounce.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.ts","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/apps/files_sharing/src/models/Share.ts","webpack:///nextcloud/apps/files_sharing/src/services/SharingService.ts","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?6c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?f180","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?cb12","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?8c53","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?4c20","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?65df","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?0b73","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?3d7c","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?45a6","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?a297","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?0e5a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?77d5","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?0657","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?1677","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?de0b","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?7202","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=18d04e6a","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlank.vue?3d12","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=template&id=41fe7db9","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?b80a","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=aba87788","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?46e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=03239926","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?93ae","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=6d856da2","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?7500","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=5603f41f","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8651","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=1eed3dd9","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?9ce8","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=e26de6f6","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?c468","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=caa55e94","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?eb90","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4441","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?0b36","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?4496","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Clock.vue?f027","webpack:///nextcloud/node_modules/vue-material-design-icons/Clock.vue?vue&type=template&id=539578bc","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?abc0","webpack://nextcloud/./apps/files_sharing/src/components/ShareExpiryTime.vue?bc23","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?9bf3","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?82b4","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?dfcb","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?af90","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?64e9","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?a70b","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?e340","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?06a5","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?10a7","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f8d7","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?9f9c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7f2e","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?68bc","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=c013567c","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?3953","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=7dd7f6aa","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?a1b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=0e958886","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?a068","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=5b2fe1de","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?157b","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=4ae2345c","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/services/TokenService.ts","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7758","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?10fc","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?3837","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],"sourcesContent":["// 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, `.sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingInput.vue\"],\"names\":[],\"mappings\":\"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA\",\"sourcesContent\":[\"\\n.sharing-search {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 4px;\\n\\n\\tlabel[for=\\\"sharing-search-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__input {\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 10px 0;\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\t// properly style the lookup entry\\n\\tspan[lookup] {\\n\\t\\t.avatardiv {\\n\\t\\t\\tbackground-image: var(--icon-search-white);\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-color: var(--color-text-maxcontrast) !important;\\n\\t\\t\\t.avatardiv__initials-wrapper {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-872931a2]{margin:1rem auto}.sharingTab[data-v-872931a2]{position:relative;height:100%}.sharingTab__content[data-v-872931a2]{padding:0 6px}.sharingTab__content section[data-v-872931a2]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-872931a2]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-872931a2]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-872931a2]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-872931a2]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-872931a2]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-872931a2]{margin:44px 0}.hint-body[data-v-872931a2]{max-width:300px;padding:var(--border-radius-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingTab.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAEA,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,aAAA,CAIF,4BACC,eAAA,CACA,oCAAA\",\"sourcesContent\":[\"\\n.emptyContentWithSections {\\n\\tmargin: 1rem auto;\\n}\\n\\n.sharingTab {\\n\\tposition: relative;\\n\\theight: 100%;\\n\\n\\t&__content {\\n\\t\\tpadding: 0 6px;\\n\\n\\t\\tsection {\\n\\t\\t\\tpadding-bottom: 16px;\\n\\n\\t\\t\\t.section-header {\\n\\t\\t\\t\\tmargin-top: 2px;\\n\\t\\t\\t\\tmargin-bottom: 2px;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tpadding-bottom: 4px;\\n\\n\\t\\t\\t\\th4 {\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.visually-hidden {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.hint-icon {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\t& > section:not(:last-child) {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__additionalContent {\\n\\t\\tmargin: 44px 0;\\n\\t}\\n}\\n\\n.hint-body {\\n\\tmax-width: 300px;\\n\\tpadding: var(--border-radius-element);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/*!\n * vue-qrcode v1.0.2\n * https://fengyuanchen.github.io/vue-qrcode\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-01-18T06:04:33.222Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.VueQrcode = factory());\n}(this, (function () { 'use strict';\n\n\tfunction commonjsRequire () {\n\t\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar qrcode = createCommonjsModule(function (module, exports) {\n\t(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n\t// can-promise has a crash in some versions of react native that dont have\n\t// standard global objects\n\t// https://github.com/soldair/node-qrcode/issues/157\n\n\tmodule.exports = function () {\n\t return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n\t};\n\n\t},{}],2:[function(require,module,exports){\n\t/**\n\t * Alignment pattern are fixed reference pattern in defined positions\n\t * in a matrix symbology, which enables the decode software to re-synchronise\n\t * the coordinate mapping of the image modules in the event of moderate amounts\n\t * of distortion of the image.\n\t *\n\t * Alignment patterns are present only in QR Code symbols of version 2 or larger\n\t * and their number depends on the symbol version.\n\t */\n\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\n\t/**\n\t * Calculate the row/column coordinates of the center module of each alignment pattern\n\t * for the specified QR Code version.\n\t *\n\t * The alignment patterns are positioned symmetrically on either side of the diagonal\n\t * running from the top left corner of the symbol to the bottom right corner.\n\t *\n\t * Since positions are simmetrical only half of the coordinates are returned.\n\t * Each item of the array will represent in turn the x and y coordinate.\n\t * @see {@link getPositions}\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinate\n\t */\n\texports.getRowColCoords = function getRowColCoords (version) {\n\t if (version === 1) return []\n\n\t var posCount = Math.floor(version / 7) + 2;\n\t var size = getSymbolSize(version);\n\t var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;\n\t var positions = [size - 7]; // Last coord is always (size - 7)\n\n\t for (var i = 1; i < posCount - 1; i++) {\n\t positions[i] = positions[i - 1] - intervals;\n\t }\n\n\t positions.push(6); // First coord is always 6\n\n\t return positions.reverse()\n\t};\n\n\t/**\n\t * Returns an array containing the positions of each alignment pattern.\n\t * Each array's element represent the center point of the pattern as (x, y) coordinates\n\t *\n\t * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n\t * and filtering out the items that overlaps with finder pattern\n\t *\n\t * @example\n\t * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n\t * The alignment patterns, therefore, are to be centered on (row, column)\n\t * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n\t * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n\t * and are not therefore used for alignment patterns.\n\t *\n\t * var pos = getPositions(7)\n\t * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var coords = [];\n\t var pos = exports.getRowColCoords(version);\n\t var posLength = pos.length;\n\n\t for (var i = 0; i < posLength; i++) {\n\t for (var j = 0; j < posLength; j++) {\n\t // Skip if position is occupied by finder patterns\n\t if ((i === 0 && j === 0) || // top-left\n\t (i === 0 && j === posLength - 1) || // bottom-left\n\t (i === posLength - 1 && j === 0)) { // top-right\n\t continue\n\t }\n\n\t coords.push([pos[i], pos[j]]);\n\t }\n\t }\n\n\t return coords\n\t};\n\n\t},{\"./utils\":21}],3:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\t/**\n\t * Array of characters available in alphanumeric mode\n\t *\n\t * As per QR Code specification, to each character\n\t * is assigned a value from 0 to 44 which in this case coincides\n\t * with the array index\n\t *\n\t * @type {Array}\n\t */\n\tvar ALPHA_NUM_CHARS = [\n\t '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n\t 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n\t ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n\t];\n\n\tfunction AlphanumericData (data) {\n\t this.mode = Mode.ALPHANUMERIC;\n\t this.data = data;\n\t}\n\n\tAlphanumericData.getBitsLength = function getBitsLength (length) {\n\t return 11 * Math.floor(length / 2) + 6 * (length % 2)\n\t};\n\n\tAlphanumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n\t return AlphanumericData.getBitsLength(this.data.length)\n\t};\n\n\tAlphanumericData.prototype.write = function write (bitBuffer) {\n\t var i;\n\n\t // Input data characters are divided into groups of two characters\n\t // and encoded as 11-bit binary codes.\n\t for (i = 0; i + 2 <= this.data.length; i += 2) {\n\t // The character value of the first character is multiplied by 45\n\t var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45;\n\n\t // The character value of the second digit is added to the product\n\t value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]);\n\n\t // The sum is then stored as 11-bit binary number\n\t bitBuffer.put(value, 11);\n\t }\n\n\t // If the number of input data characters is not a multiple of two,\n\t // the character value of the final character is encoded as a 6-bit binary number.\n\t if (this.data.length % 2) {\n\t bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);\n\t }\n\t};\n\n\tmodule.exports = AlphanumericData;\n\n\t},{\"./mode\":14}],4:[function(require,module,exports){\n\tfunction BitBuffer () {\n\t this.buffer = [];\n\t this.length = 0;\n\t}\n\n\tBitBuffer.prototype = {\n\n\t get: function (index) {\n\t var bufIndex = Math.floor(index / 8);\n\t return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n\t },\n\n\t put: function (num, length) {\n\t for (var i = 0; i < length; i++) {\n\t this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n\t }\n\t },\n\n\t getLengthInBits: function () {\n\t return this.length\n\t },\n\n\t putBit: function (bit) {\n\t var bufIndex = Math.floor(this.length / 8);\n\t if (this.buffer.length <= bufIndex) {\n\t this.buffer.push(0);\n\t }\n\n\t if (bit) {\n\t this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));\n\t }\n\n\t this.length++;\n\t }\n\t};\n\n\tmodule.exports = BitBuffer;\n\n\t},{}],5:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\t/**\n\t * Helper class to handle QR Code symbol modules\n\t *\n\t * @param {Number} size Symbol size\n\t */\n\tfunction BitMatrix (size) {\n\t if (!size || size < 1) {\n\t throw new Error('BitMatrix size must be defined and greater than 0')\n\t }\n\n\t this.size = size;\n\t this.data = BufferUtil.alloc(size * size);\n\t this.reservedBit = BufferUtil.alloc(size * size);\n\t}\n\n\t/**\n\t * Set bit value at specified location\n\t * If reserved flag is set, this bit will be ignored during masking process\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t * @param {Boolean} reserved\n\t */\n\tBitMatrix.prototype.set = function (row, col, value, reserved) {\n\t var index = row * this.size + col;\n\t this.data[index] = value;\n\t if (reserved) this.reservedBit[index] = true;\n\t};\n\n\t/**\n\t * Returns bit value at specified location\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.get = function (row, col) {\n\t return this.data[row * this.size + col]\n\t};\n\n\t/**\n\t * Applies xor operator at specified location\n\t * (used during masking process)\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t */\n\tBitMatrix.prototype.xor = function (row, col, value) {\n\t this.data[row * this.size + col] ^= value;\n\t};\n\n\t/**\n\t * Check if bit at specified location is reserved\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.isReserved = function (row, col) {\n\t return this.reservedBit[row * this.size + col]\n\t};\n\n\tmodule.exports = BitMatrix;\n\n\t},{\"../utils/buffer\":28}],6:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Mode = require('./mode');\n\n\tfunction ByteData (data) {\n\t this.mode = Mode.BYTE;\n\t this.data = BufferUtil.from(data);\n\t}\n\n\tByteData.getBitsLength = function getBitsLength (length) {\n\t return length * 8\n\t};\n\n\tByteData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tByteData.prototype.getBitsLength = function getBitsLength () {\n\t return ByteData.getBitsLength(this.data.length)\n\t};\n\n\tByteData.prototype.write = function (bitBuffer) {\n\t for (var i = 0, l = this.data.length; i < l; i++) {\n\t bitBuffer.put(this.data[i], 8);\n\t }\n\t};\n\n\tmodule.exports = ByteData;\n\n\t},{\"../utils/buffer\":28,\"./mode\":14}],7:[function(require,module,exports){\n\tvar ECLevel = require('./error-correction-level');\r\n\r\n\tvar EC_BLOCKS_TABLE = [\r\n\t// L M Q H\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 2, 2,\r\n\t 1, 2, 2, 4,\r\n\t 1, 2, 4, 4,\r\n\t 2, 4, 4, 4,\r\n\t 2, 4, 6, 5,\r\n\t 2, 4, 6, 6,\r\n\t 2, 5, 8, 8,\r\n\t 4, 5, 8, 8,\r\n\t 4, 5, 8, 11,\r\n\t 4, 8, 10, 11,\r\n\t 4, 9, 12, 16,\r\n\t 4, 9, 16, 16,\r\n\t 6, 10, 12, 18,\r\n\t 6, 10, 17, 16,\r\n\t 6, 11, 16, 19,\r\n\t 6, 13, 18, 21,\r\n\t 7, 14, 21, 25,\r\n\t 8, 16, 20, 25,\r\n\t 8, 17, 23, 25,\r\n\t 9, 17, 23, 34,\r\n\t 9, 18, 25, 30,\r\n\t 10, 20, 27, 32,\r\n\t 12, 21, 29, 35,\r\n\t 12, 23, 34, 37,\r\n\t 12, 25, 34, 40,\r\n\t 13, 26, 35, 42,\r\n\t 14, 28, 38, 45,\r\n\t 15, 29, 40, 48,\r\n\t 16, 31, 43, 51,\r\n\t 17, 33, 45, 54,\r\n\t 18, 35, 48, 57,\r\n\t 19, 37, 51, 60,\r\n\t 19, 38, 53, 63,\r\n\t 20, 40, 56, 66,\r\n\t 21, 43, 59, 70,\r\n\t 22, 45, 62, 74,\r\n\t 24, 47, 65, 77,\r\n\t 25, 49, 68, 81\r\n\t];\r\n\r\n\tvar EC_CODEWORDS_TABLE = [\r\n\t// L M Q H\r\n\t 7, 10, 13, 17,\r\n\t 10, 16, 22, 28,\r\n\t 15, 26, 36, 44,\r\n\t 20, 36, 52, 64,\r\n\t 26, 48, 72, 88,\r\n\t 36, 64, 96, 112,\r\n\t 40, 72, 108, 130,\r\n\t 48, 88, 132, 156,\r\n\t 60, 110, 160, 192,\r\n\t 72, 130, 192, 224,\r\n\t 80, 150, 224, 264,\r\n\t 96, 176, 260, 308,\r\n\t 104, 198, 288, 352,\r\n\t 120, 216, 320, 384,\r\n\t 132, 240, 360, 432,\r\n\t 144, 280, 408, 480,\r\n\t 168, 308, 448, 532,\r\n\t 180, 338, 504, 588,\r\n\t 196, 364, 546, 650,\r\n\t 224, 416, 600, 700,\r\n\t 224, 442, 644, 750,\r\n\t 252, 476, 690, 816,\r\n\t 270, 504, 750, 900,\r\n\t 300, 560, 810, 960,\r\n\t 312, 588, 870, 1050,\r\n\t 336, 644, 952, 1110,\r\n\t 360, 700, 1020, 1200,\r\n\t 390, 728, 1050, 1260,\r\n\t 420, 784, 1140, 1350,\r\n\t 450, 812, 1200, 1440,\r\n\t 480, 868, 1290, 1530,\r\n\t 510, 924, 1350, 1620,\r\n\t 540, 980, 1440, 1710,\r\n\t 570, 1036, 1530, 1800,\r\n\t 570, 1064, 1590, 1890,\r\n\t 600, 1120, 1680, 1980,\r\n\t 630, 1204, 1770, 2100,\r\n\t 660, 1260, 1860, 2220,\r\n\t 720, 1316, 1950, 2310,\r\n\t 750, 1372, 2040, 2430\r\n\t];\r\n\r\n\t/**\r\n\t * Returns the number of error correction block that the QR Code should contain\r\n\t * for the specified version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction blocks\r\n\t */\r\n\texports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the number of error correction codewords to use for the specified\r\n\t * version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction codewords\r\n\t */\r\n\texports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\n\t},{\"./error-correction-level\":8}],8:[function(require,module,exports){\n\texports.L = { bit: 1 };\n\texports.M = { bit: 0 };\n\texports.Q = { bit: 3 };\n\texports.H = { bit: 2 };\n\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'l':\n\t case 'low':\n\t return exports.L\n\n\t case 'm':\n\t case 'medium':\n\t return exports.M\n\n\t case 'q':\n\t case 'quartile':\n\t return exports.Q\n\n\t case 'h':\n\t case 'high':\n\t return exports.H\n\n\t default:\n\t throw new Error('Unknown EC Level: ' + string)\n\t }\n\t}\n\n\texports.isValid = function isValid (level) {\n\t return level && typeof level.bit !== 'undefined' &&\n\t level.bit >= 0 && level.bit < 4\n\t};\n\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{}],9:[function(require,module,exports){\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\tvar FINDER_PATTERN_SIZE = 7;\n\n\t/**\n\t * Returns an array containing the positions of each finder pattern.\n\t * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var size = getSymbolSize(version);\n\n\t return [\n\t // top-left\n\t [0, 0],\n\t // top-right\n\t [size - FINDER_PATTERN_SIZE, 0],\n\t // bottom-left\n\t [0, size - FINDER_PATTERN_SIZE]\n\t ]\n\t};\n\n\t},{\"./utils\":21}],10:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n\tvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\tvar G15_BCH = Utils.getBCHDigit(G15);\n\n\t/**\n\t * Returns format information with relative error correction bits\n\t *\n\t * The format information is a 15-bit sequence containing 5 data bits,\n\t * with 10 error correction bits calculated using the (15, 5) BCH code.\n\t *\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Number} mask Mask pattern\n\t * @return {Number} Encoded format information bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n\t var data = ((errorCorrectionLevel.bit << 3) | mask);\n\t var d = data << 10;\n\n\t while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n\t d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH));\n\t }\n\n\t // xor final data with mask pattern in order to ensure that\n\t // no combination of Error Correction Level and data mask pattern\n\t // will result in an all-zero data string\n\t return ((data << 10) | d) ^ G15_MASK\n\t};\n\n\t},{\"./utils\":21}],11:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\tvar EXP_TABLE = BufferUtil.alloc(512);\n\tvar LOG_TABLE = BufferUtil.alloc(256)\n\t/**\n\t * Precompute the log and anti-log tables for faster computation later\n\t *\n\t * For each possible value in the galois field 2^8, we will pre-compute\n\t * the logarithm and anti-logarithm (exponential) of this value\n\t *\n\t * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n\t */\n\t;(function initTables () {\n\t var x = 1;\n\t for (var i = 0; i < 255; i++) {\n\t EXP_TABLE[i] = x;\n\t LOG_TABLE[x] = i;\n\n\t x <<= 1; // multiply by 2\n\n\t // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n\t // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\t if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n\t x ^= 0x11D;\n\t }\n\t }\n\n\t // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n\t // stay inside the bounds (because we will mainly use this table for the multiplication of\n\t // two GF numbers, no more).\n\t // @see {@link mul}\n\t for (i = 255; i < 512; i++) {\n\t EXP_TABLE[i] = EXP_TABLE[i - 255];\n\t }\n\t}());\n\n\t/**\n\t * Returns log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.log = function log (n) {\n\t if (n < 1) throw new Error('log(' + n + ')')\n\t return LOG_TABLE[n]\n\t};\n\n\t/**\n\t * Returns anti-log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.exp = function exp (n) {\n\t return EXP_TABLE[n]\n\t};\n\n\t/**\n\t * Multiplies two number inside Galois Field\n\t *\n\t * @param {Number} x\n\t * @param {Number} y\n\t * @return {Number}\n\t */\n\texports.mul = function mul (x, y) {\n\t if (x === 0 || y === 0) return 0\n\n\t // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n\t // @see {@link initTables}\n\t return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n\t};\n\n\t},{\"../utils/buffer\":28}],12:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar Utils = require('./utils');\n\n\tfunction KanjiData (data) {\n\t this.mode = Mode.KANJI;\n\t this.data = data;\n\t}\n\n\tKanjiData.getBitsLength = function getBitsLength (length) {\n\t return length * 13\n\t};\n\n\tKanjiData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tKanjiData.prototype.getBitsLength = function getBitsLength () {\n\t return KanjiData.getBitsLength(this.data.length)\n\t};\n\n\tKanjiData.prototype.write = function (bitBuffer) {\n\t var i;\n\n\t // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n\t // These byte values are shifted from the JIS X 0208 values.\n\t // JIS X 0208 gives details of the shift coded representation.\n\t for (i = 0; i < this.data.length; i++) {\n\t var value = Utils.toSJIS(this.data[i]);\n\n\t // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\t if (value >= 0x8140 && value <= 0x9FFC) {\n\t // Subtract 0x8140 from Shift JIS value\n\t value -= 0x8140;\n\n\t // For characters with Shift JIS values from 0xE040 to 0xEBBF\n\t } else if (value >= 0xE040 && value <= 0xEBBF) {\n\t // Subtract 0xC140 from Shift JIS value\n\t value -= 0xC140;\n\t } else {\n\t throw new Error(\n\t 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n\t 'Make sure your charset is UTF-8')\n\t }\n\n\t // Multiply most significant byte of result by 0xC0\n\t // and add least significant byte to product\n\t value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);\n\n\t // Convert result to a 13-bit binary string\n\t bitBuffer.put(value, 13);\n\t }\n\t};\n\n\tmodule.exports = KanjiData;\n\n\t},{\"./mode\":14,\"./utils\":21}],13:[function(require,module,exports){\n\t/**\n\t * Data mask pattern reference\n\t * @type {Object}\n\t */\n\texports.Patterns = {\n\t PATTERN000: 0,\n\t PATTERN001: 1,\n\t PATTERN010: 2,\n\t PATTERN011: 3,\n\t PATTERN100: 4,\n\t PATTERN101: 5,\n\t PATTERN110: 6,\n\t PATTERN111: 7\n\t};\n\n\t/**\n\t * Weighted penalty scores for the undesirable features\n\t * @type {Object}\n\t */\n\tvar PenaltyScores = {\n\t N1: 3,\n\t N2: 3,\n\t N3: 40,\n\t N4: 10\n\t};\n\n\t/**\n\t * Check if mask pattern value is valid\n\t *\n\t * @param {Number} mask Mask pattern\n\t * @return {Boolean} true if valid, false otherwise\n\t */\n\texports.isValid = function isValid (mask) {\n\t return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n\t};\n\n\t/**\n\t * Returns mask pattern from a value.\n\t * If value is not valid, returns undefined\n\t *\n\t * @param {Number|String} value Mask pattern value\n\t * @return {Number} Valid mask pattern or undefined\n\t */\n\texports.from = function from (value) {\n\t return exports.isValid(value) ? parseInt(value, 10) : undefined\n\t};\n\n\t/**\n\t* Find adjacent modules in row/column with the same color\n\t* and assign a penalty value.\n\t*\n\t* Points: N1 + i\n\t* i is the amount by which the number of adjacent modules of the same color exceeds 5\n\t*/\n\texports.getPenaltyN1 = function getPenaltyN1 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var sameCountCol = 0;\n\t var sameCountRow = 0;\n\t var lastCol = null;\n\t var lastRow = null;\n\n\t for (var row = 0; row < size; row++) {\n\t sameCountCol = sameCountRow = 0;\n\t lastCol = lastRow = null;\n\n\t for (var col = 0; col < size; col++) {\n\t var module = data.get(row, col);\n\t if (module === lastCol) {\n\t sameCountCol++;\n\t } else {\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t lastCol = module;\n\t sameCountCol = 1;\n\t }\n\n\t module = data.get(col, row);\n\t if (module === lastRow) {\n\t sameCountRow++;\n\t } else {\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t lastRow = module;\n\t sameCountRow = 1;\n\t }\n\t }\n\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t }\n\n\t return points\n\t};\n\n\t/**\n\t * Find 2x2 blocks with the same color and assign a penalty value\n\t *\n\t * Points: N2 * (m - 1) * (n - 1)\n\t */\n\texports.getPenaltyN2 = function getPenaltyN2 (data) {\n\t var size = data.size;\n\t var points = 0;\n\n\t for (var row = 0; row < size - 1; row++) {\n\t for (var col = 0; col < size - 1; col++) {\n\t var last = data.get(row, col) +\n\t data.get(row, col + 1) +\n\t data.get(row + 1, col) +\n\t data.get(row + 1, col + 1);\n\n\t if (last === 4 || last === 0) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N2\n\t};\n\n\t/**\n\t * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n\t * preceded or followed by light area 4 modules wide\n\t *\n\t * Points: N3 * number of pattern found\n\t */\n\texports.getPenaltyN3 = function getPenaltyN3 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var bitsCol = 0;\n\t var bitsRow = 0;\n\n\t for (var row = 0; row < size; row++) {\n\t bitsCol = bitsRow = 0;\n\t for (var col = 0; col < size; col++) {\n\t bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);\n\t if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n\n\t bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);\n\t if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N3\n\t};\n\n\t/**\n\t * Calculate proportion of dark modules in entire symbol\n\t *\n\t * Points: N4 * k\n\t *\n\t * k is the rating of the deviation of the proportion of dark modules\n\t * in the symbol from 50% in steps of 5%\n\t */\n\texports.getPenaltyN4 = function getPenaltyN4 (data) {\n\t var darkCount = 0;\n\t var modulesCount = data.data.length;\n\n\t for (var i = 0; i < modulesCount; i++) darkCount += data.data[i];\n\n\t var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);\n\n\t return k * PenaltyScores.N4\n\t};\n\n\t/**\n\t * Return mask value at given position\n\t *\n\t * @param {Number} maskPattern Pattern reference value\n\t * @param {Number} i Row\n\t * @param {Number} j Column\n\t * @return {Boolean} Mask value\n\t */\n\tfunction getMaskAt (maskPattern, i, j) {\n\t switch (maskPattern) {\n\t case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n\t case exports.Patterns.PATTERN001: return i % 2 === 0\n\t case exports.Patterns.PATTERN010: return j % 3 === 0\n\t case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n\t case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n\t case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n\t case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n\t case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n\t default: throw new Error('bad maskPattern:' + maskPattern)\n\t }\n\t}\n\n\t/**\n\t * Apply a mask pattern to a BitMatrix\n\t *\n\t * @param {Number} pattern Pattern reference number\n\t * @param {BitMatrix} data BitMatrix data\n\t */\n\texports.applyMask = function applyMask (pattern, data) {\n\t var size = data.size;\n\n\t for (var col = 0; col < size; col++) {\n\t for (var row = 0; row < size; row++) {\n\t if (data.isReserved(row, col)) continue\n\t data.xor(row, col, getMaskAt(pattern, row, col));\n\t }\n\t }\n\t};\n\n\t/**\n\t * Returns the best mask pattern for data\n\t *\n\t * @param {BitMatrix} data\n\t * @return {Number} Mask pattern reference number\n\t */\n\texports.getBestMask = function getBestMask (data, setupFormatFunc) {\n\t var numPatterns = Object.keys(exports.Patterns).length;\n\t var bestPattern = 0;\n\t var lowerPenalty = Infinity;\n\n\t for (var p = 0; p < numPatterns; p++) {\n\t setupFormatFunc(p);\n\t exports.applyMask(p, data);\n\n\t // Calculate penalty\n\t var penalty =\n\t exports.getPenaltyN1(data) +\n\t exports.getPenaltyN2(data) +\n\t exports.getPenaltyN3(data) +\n\t exports.getPenaltyN4(data);\n\n\t // Undo previously applied mask\n\t exports.applyMask(p, data);\n\n\t if (penalty < lowerPenalty) {\n\t lowerPenalty = penalty;\n\t bestPattern = p;\n\t }\n\t }\n\n\t return bestPattern\n\t};\n\n\t},{}],14:[function(require,module,exports){\n\tvar VersionCheck = require('./version-check');\n\tvar Regex = require('./regex');\n\n\t/**\n\t * Numeric mode encodes data from the decimal digit set (0 - 9)\n\t * (byte values 30HEX to 39HEX).\n\t * Normally, 3 data characters are represented by 10 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.NUMERIC = {\n\t id: 'Numeric',\n\t bit: 1 << 0,\n\t ccBits: [10, 12, 14]\n\t};\n\n\t/**\n\t * Alphanumeric mode encodes data from a set of 45 characters,\n\t * i.e. 10 numeric digits (0 - 9),\n\t * 26 alphabetic characters (A - Z),\n\t * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n\t * Normally, two input characters are represented by 11 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.ALPHANUMERIC = {\n\t id: 'Alphanumeric',\n\t bit: 1 << 1,\n\t ccBits: [9, 11, 13]\n\t};\n\n\t/**\n\t * In byte mode, data is encoded at 8 bits per character.\n\t *\n\t * @type {Object}\n\t */\n\texports.BYTE = {\n\t id: 'Byte',\n\t bit: 1 << 2,\n\t ccBits: [8, 16, 16]\n\t};\n\n\t/**\n\t * The Kanji mode efficiently encodes Kanji characters in accordance with\n\t * the Shift JIS system based on JIS X 0208.\n\t * The Shift JIS values are shifted from the JIS X 0208 values.\n\t * JIS X 0208 gives details of the shift coded representation.\n\t * Each two-byte character value is compacted to a 13-bit binary codeword.\n\t *\n\t * @type {Object}\n\t */\n\texports.KANJI = {\n\t id: 'Kanji',\n\t bit: 1 << 3,\n\t ccBits: [8, 10, 12]\n\t};\n\n\t/**\n\t * Mixed mode will contain a sequences of data in a combination of any of\n\t * the modes described above\n\t *\n\t * @type {Object}\n\t */\n\texports.MIXED = {\n\t bit: -1\n\t};\n\n\t/**\n\t * Returns the number of bits needed to store the data length\n\t * according to QR Code specifications.\n\t *\n\t * @param {Mode} mode Data mode\n\t * @param {Number} version QR Code version\n\t * @return {Number} Number of bits\n\t */\n\texports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n\t if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid version: ' + version)\n\t }\n\n\t if (version >= 1 && version < 10) return mode.ccBits[0]\n\t else if (version < 27) return mode.ccBits[1]\n\t return mode.ccBits[2]\n\t};\n\n\t/**\n\t * Returns the most efficient mode to store the specified data\n\t *\n\t * @param {String} dataStr Input data string\n\t * @return {Mode} Best mode\n\t */\n\texports.getBestModeForData = function getBestModeForData (dataStr) {\n\t if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n\t else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n\t else if (Regex.testKanji(dataStr)) return exports.KANJI\n\t else return exports.BYTE\n\t};\n\n\t/**\n\t * Return mode name as string\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {String} Mode name\n\t */\n\texports.toString = function toString (mode) {\n\t if (mode && mode.id) return mode.id\n\t throw new Error('Invalid mode')\n\t};\n\n\t/**\n\t * Check if input param is a valid mode object\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {Boolean} True if valid mode, false otherwise\n\t */\n\texports.isValid = function isValid (mode) {\n\t return mode && mode.bit && mode.ccBits\n\t};\n\n\t/**\n\t * Get mode object from its name\n\t *\n\t * @param {String} string Mode name\n\t * @returns {Mode} Mode object\n\t */\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'numeric':\n\t return exports.NUMERIC\n\t case 'alphanumeric':\n\t return exports.ALPHANUMERIC\n\t case 'kanji':\n\t return exports.KANJI\n\t case 'byte':\n\t return exports.BYTE\n\t default:\n\t throw new Error('Unknown mode: ' + string)\n\t }\n\t}\n\n\t/**\n\t * Returns mode from a value.\n\t * If value is not a valid mode, returns defaultValue\n\t *\n\t * @param {Mode|String} value Encoding mode\n\t * @param {Mode} defaultValue Fallback value\n\t * @return {Mode} Encoding mode\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{\"./regex\":19,\"./version-check\":22}],15:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\tfunction NumericData (data) {\n\t this.mode = Mode.NUMERIC;\n\t this.data = data.toString();\n\t}\n\n\tNumericData.getBitsLength = function getBitsLength (length) {\n\t return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n\t};\n\n\tNumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tNumericData.prototype.getBitsLength = function getBitsLength () {\n\t return NumericData.getBitsLength(this.data.length)\n\t};\n\n\tNumericData.prototype.write = function write (bitBuffer) {\n\t var i, group, value;\n\n\t // The input data string is divided into groups of three digits,\n\t // and each group is converted to its 10-bit binary equivalent.\n\t for (i = 0; i + 3 <= this.data.length; i += 3) {\n\t group = this.data.substr(i, 3);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, 10);\n\t }\n\n\t // If the number of input digits is not an exact multiple of three,\n\t // the final one or two digits are converted to 4 or 7 bits respectively.\n\t var remainingNum = this.data.length - i;\n\t if (remainingNum > 0) {\n\t group = this.data.substr(i);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, remainingNum * 3 + 1);\n\t }\n\t};\n\n\tmodule.exports = NumericData;\n\n\t},{\"./mode\":14}],16:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar GF = require('./galois-field');\n\n\t/**\n\t * Multiplies two polynomials inside Galois Field\n\t *\n\t * @param {Buffer} p1 Polynomial\n\t * @param {Buffer} p2 Polynomial\n\t * @return {Buffer} Product of p1 and p2\n\t */\n\texports.mul = function mul (p1, p2) {\n\t var coeff = BufferUtil.alloc(p1.length + p2.length - 1);\n\n\t for (var i = 0; i < p1.length; i++) {\n\t for (var j = 0; j < p2.length; j++) {\n\t coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n\t }\n\t }\n\n\t return coeff\n\t};\n\n\t/**\n\t * Calculate the remainder of polynomials division\n\t *\n\t * @param {Buffer} divident Polynomial\n\t * @param {Buffer} divisor Polynomial\n\t * @return {Buffer} Remainder\n\t */\n\texports.mod = function mod (divident, divisor) {\n\t var result = BufferUtil.from(divident);\n\n\t while ((result.length - divisor.length) >= 0) {\n\t var coeff = result[0];\n\n\t for (var i = 0; i < divisor.length; i++) {\n\t result[i] ^= GF.mul(divisor[i], coeff);\n\t }\n\n\t // remove all zeros from buffer head\n\t var offset = 0;\n\t while (offset < result.length && result[offset] === 0) offset++;\n\t result = result.slice(offset);\n\t }\n\n\t return result\n\t};\n\n\t/**\n\t * Generate an irreducible generator polynomial of specified degree\n\t * (used by Reed-Solomon encoder)\n\t *\n\t * @param {Number} degree Degree of the generator polynomial\n\t * @return {Buffer} Buffer containing polynomial coefficients\n\t */\n\texports.generateECPolynomial = function generateECPolynomial (degree) {\n\t var poly = BufferUtil.from([1]);\n\t for (var i = 0; i < degree; i++) {\n\t poly = exports.mul(poly, [1, GF.exp(i)]);\n\t }\n\n\t return poly\n\t};\n\n\t},{\"../utils/buffer\":28,\"./galois-field\":11}],17:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Utils = require('./utils');\n\tvar ECLevel = require('./error-correction-level');\n\tvar BitBuffer = require('./bit-buffer');\n\tvar BitMatrix = require('./bit-matrix');\n\tvar AlignmentPattern = require('./alignment-pattern');\n\tvar FinderPattern = require('./finder-pattern');\n\tvar MaskPattern = require('./mask-pattern');\n\tvar ECCode = require('./error-correction-code');\n\tvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\tvar Version = require('./version');\n\tvar FormatInfo = require('./format-info');\n\tvar Mode = require('./mode');\n\tvar Segments = require('./segments');\n\tvar isArray = require('isarray');\n\n\t/**\n\t * QRCode for JavaScript\n\t *\n\t * modified by Ryan Day for nodejs support\n\t * Copyright (c) 2011 Ryan Day\n\t *\n\t * Licensed under the MIT license:\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of\n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\t*/\n\n\t/**\n\t * Add finder patterns bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupFinderPattern (matrix, version) {\n\t var size = matrix.size;\n\t var pos = FinderPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -1; r <= 7; r++) {\n\t if (row + r <= -1 || size <= row + r) continue\n\n\t for (var c = -1; c <= 7; c++) {\n\t if (col + c <= -1 || size <= col + c) continue\n\n\t if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n\t (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n\t (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add timing pattern bits to matrix\n\t *\n\t * Note: this function must be called before {@link setupAlignmentPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t */\n\tfunction setupTimingPattern (matrix) {\n\t var size = matrix.size;\n\n\t for (var r = 8; r < size - 8; r++) {\n\t var value = r % 2 === 0;\n\t matrix.set(r, 6, value, true);\n\t matrix.set(6, r, value, true);\n\t }\n\t}\n\n\t/**\n\t * Add alignment patterns bits to matrix\n\t *\n\t * Note: this function must be called after {@link setupTimingPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupAlignmentPattern (matrix, version) {\n\t var pos = AlignmentPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -2; r <= 2; r++) {\n\t for (var c = -2; c <= 2; c++) {\n\t if (r === -2 || r === 2 || c === -2 || c === 2 ||\n\t (r === 0 && c === 0)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add version info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupVersionInfo (matrix, version) {\n\t var size = matrix.size;\n\t var bits = Version.getEncodedBits(version);\n\t var row, col, mod;\n\n\t for (var i = 0; i < 18; i++) {\n\t row = Math.floor(i / 3);\n\t col = i % 3 + size - 8 - 3;\n\t mod = ((bits >> i) & 1) === 1;\n\n\t matrix.set(row, col, mod, true);\n\t matrix.set(col, row, mod, true);\n\t }\n\t}\n\n\t/**\n\t * Add format info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {Number} maskPattern Mask pattern reference value\n\t */\n\tfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n\t var size = matrix.size;\n\t var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n\t var i, mod;\n\n\t for (i = 0; i < 15; i++) {\n\t mod = ((bits >> i) & 1) === 1;\n\n\t // vertical\n\t if (i < 6) {\n\t matrix.set(i, 8, mod, true);\n\t } else if (i < 8) {\n\t matrix.set(i + 1, 8, mod, true);\n\t } else {\n\t matrix.set(size - 15 + i, 8, mod, true);\n\t }\n\n\t // horizontal\n\t if (i < 8) {\n\t matrix.set(8, size - i - 1, mod, true);\n\t } else if (i < 9) {\n\t matrix.set(8, 15 - i - 1 + 1, mod, true);\n\t } else {\n\t matrix.set(8, 15 - i - 1, mod, true);\n\t }\n\t }\n\n\t // fixed module\n\t matrix.set(size - 8, 8, 1, true);\n\t}\n\n\t/**\n\t * Add encoded data bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Buffer} data Data codewords\n\t */\n\tfunction setupData (matrix, data) {\n\t var size = matrix.size;\n\t var inc = -1;\n\t var row = size - 1;\n\t var bitIndex = 7;\n\t var byteIndex = 0;\n\n\t for (var col = size - 1; col > 0; col -= 2) {\n\t if (col === 6) col--;\n\n\t while (true) {\n\t for (var c = 0; c < 2; c++) {\n\t if (!matrix.isReserved(row, col - c)) {\n\t var dark = false;\n\n\t if (byteIndex < data.length) {\n\t dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);\n\t }\n\n\t matrix.set(row, col - c, dark);\n\t bitIndex--;\n\n\t if (bitIndex === -1) {\n\t byteIndex++;\n\t bitIndex = 7;\n\t }\n\t }\n\t }\n\n\t row += inc;\n\n\t if (row < 0 || size <= row) {\n\t row -= inc;\n\t inc = -inc;\n\t break\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Create encoded codewords from data input\n\t *\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {ByteData} data Data input\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createData (version, errorCorrectionLevel, segments) {\n\t // Prepare data buffer\n\t var buffer = new BitBuffer();\n\n\t segments.forEach(function (data) {\n\t // prefix data with mode indicator (4 bits)\n\t buffer.put(data.mode.bit, 4);\n\n\t // Prefix data with character count indicator.\n\t // The character count indicator is a string of bits that represents the\n\t // number of characters that are being encoded.\n\t // The character count indicator must be placed after the mode indicator\n\t // and must be a certain number of bits long, depending on the QR version\n\t // and data mode\n\t // @see {@link Mode.getCharCountIndicator}.\n\t buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version));\n\n\t // add binary data sequence to buffer\n\t data.write(buffer);\n\t });\n\n\t // Calculate required number of bits\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t // Add a terminator.\n\t // If the bit string is shorter than the total number of required bits,\n\t // a terminator of up to four 0s must be added to the right side of the string.\n\t // If the bit string is more than four bits shorter than the required number of bits,\n\t // add four 0s to the end.\n\t if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n\t buffer.put(0, 4);\n\t }\n\n\t // If the bit string is fewer than four bits shorter, add only the number of 0s that\n\t // are needed to reach the required number of bits.\n\n\t // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n\t // pad the string on the right with 0s to make the string's length a multiple of 8.\n\t while (buffer.getLengthInBits() % 8 !== 0) {\n\t buffer.putBit(0);\n\t }\n\n\t // Add pad bytes if the string is still shorter than the total number of required bits.\n\t // Extend the buffer to fill the data capacity of the symbol corresponding to\n\t // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n\t // and 00010001 (0x11) alternately.\n\t var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\t for (var i = 0; i < remainingByte; i++) {\n\t buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n\t }\n\n\t return createCodewords(buffer, version, errorCorrectionLevel)\n\t}\n\n\t/**\n\t * Encode input data with Reed-Solomon and return codewords with\n\t * relative error correction bits\n\t *\n\t * @param {BitBuffer} bitBuffer Data to encode\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewords = totalCodewords - ecTotalCodewords;\n\n\t // Total number of blocks\n\t var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel);\n\n\t // Calculate how many blocks each group should contain\n\t var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n\t var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n\n\t var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n\n\t var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n\t var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;\n\n\t // Number of EC codewords is the same for both groups\n\t var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;\n\n\t // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\t var rs = new ReedSolomonEncoder(ecCount);\n\n\t var offset = 0;\n\t var dcData = new Array(ecTotalBlocks);\n\t var ecData = new Array(ecTotalBlocks);\n\t var maxDataSize = 0;\n\t var buffer = BufferUtil.from(bitBuffer.buffer);\n\n\t // Divide the buffer into the required number of blocks\n\t for (var b = 0; b < ecTotalBlocks; b++) {\n\t var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;\n\n\t // extract a block of data from buffer\n\t dcData[b] = buffer.slice(offset, offset + dataSize);\n\n\t // Calculate EC codewords for this data block\n\t ecData[b] = rs.encode(dcData[b]);\n\n\t offset += dataSize;\n\t maxDataSize = Math.max(maxDataSize, dataSize);\n\t }\n\n\t // Create final data\n\t // Interleave the data and error correction codewords from each block\n\t var data = BufferUtil.alloc(totalCodewords);\n\t var index = 0;\n\t var i, r;\n\n\t // Add data codewords\n\t for (i = 0; i < maxDataSize; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t if (i < dcData[r].length) {\n\t data[index++] = dcData[r][i];\n\t }\n\t }\n\t }\n\n\t // Apped EC codewords\n\t for (i = 0; i < ecCount; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t data[index++] = ecData[r][i];\n\t }\n\t }\n\n\t return data\n\t}\n\n\t/**\n\t * Build QR Code symbol\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n\t * @param {MaskPattern} maskPattern Mask pattern\n\t * @return {Object} Object containing symbol data\n\t */\n\tfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n\t var segments;\n\n\t if (isArray(data)) {\n\t segments = Segments.fromArray(data);\n\t } else if (typeof data === 'string') {\n\t var estimatedVersion = version;\n\n\t if (!estimatedVersion) {\n\t var rawSegments = Segments.rawSplit(data);\n\n\t // Estimate best version that can contain raw splitted segments\n\t estimatedVersion = Version.getBestVersionForData(rawSegments,\n\t errorCorrectionLevel);\n\t }\n\n\t // Build optimized segments\n\t // If estimated version is undefined, try with the highest version\n\t segments = Segments.fromString(data, estimatedVersion || 40);\n\t } else {\n\t throw new Error('Invalid data')\n\t }\n\n\t // Get the min version that can contain data\n\t var bestVersion = Version.getBestVersionForData(segments,\n\t errorCorrectionLevel);\n\n\t // If no version is found, data cannot be stored\n\t if (!bestVersion) {\n\t throw new Error('The amount of data is too big to be stored in a QR Code')\n\t }\n\n\t // If not specified, use min version as default\n\t if (!version) {\n\t version = bestVersion;\n\n\t // Check if the specified version can contain the data\n\t } else if (version < bestVersion) {\n\t throw new Error('\\n' +\n\t 'The chosen QR Code version cannot contain this amount of data.\\n' +\n\t 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n\t )\n\t }\n\n\t var dataBits = createData(version, errorCorrectionLevel, segments);\n\n\t // Allocate matrix buffer\n\t var moduleCount = Utils.getSymbolSize(version);\n\t var modules = new BitMatrix(moduleCount);\n\n\t // Add function modules\n\t setupFinderPattern(modules, version);\n\t setupTimingPattern(modules);\n\t setupAlignmentPattern(modules, version);\n\n\t // Add temporary dummy bits for format info just to set them as reserved.\n\t // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n\t // since the masking operation must be performed only on the encoding region.\n\t // These blocks will be replaced with correct values later in code.\n\t setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n\t if (version >= 7) {\n\t setupVersionInfo(modules, version);\n\t }\n\n\t // Add data codewords\n\t setupData(modules, dataBits);\n\n\t if (isNaN(maskPattern)) {\n\t // Find best mask pattern\n\t maskPattern = MaskPattern.getBestMask(modules,\n\t setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n\t }\n\n\t // Apply mask pattern\n\t MaskPattern.applyMask(maskPattern, modules);\n\n\t // Replace format info bits with correct values\n\t setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n\n\t return {\n\t modules: modules,\n\t version: version,\n\t errorCorrectionLevel: errorCorrectionLevel,\n\t maskPattern: maskPattern,\n\t segments: segments\n\t }\n\t}\n\n\t/**\n\t * QR Code\n\t *\n\t * @param {String | Array} data Input data\n\t * @param {Object} options Optional configurations\n\t * @param {Number} options.version QR Code version\n\t * @param {String} options.errorCorrectionLevel Error correction level\n\t * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n\t */\n\texports.create = function create (data, options) {\n\t if (typeof data === 'undefined' || data === '') {\n\t throw new Error('No input text')\n\t }\n\n\t var errorCorrectionLevel = ECLevel.M;\n\t var version;\n\t var mask;\n\n\t if (typeof options !== 'undefined') {\n\t // Use higher error correction level as default\n\t errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n\t version = Version.from(options.version);\n\t mask = MaskPattern.from(options.maskPattern);\n\n\t if (options.toSJISFunc) {\n\t Utils.setToSJISFunction(options.toSJISFunc);\n\t }\n\t }\n\n\t return createSymbol(data, version, errorCorrectionLevel, mask)\n\t};\n\n\t},{\"../utils/buffer\":28,\"./alignment-pattern\":2,\"./bit-buffer\":4,\"./bit-matrix\":5,\"./error-correction-code\":7,\"./error-correction-level\":8,\"./finder-pattern\":9,\"./format-info\":10,\"./mask-pattern\":13,\"./mode\":14,\"./reed-solomon-encoder\":18,\"./segments\":20,\"./utils\":21,\"./version\":23,\"isarray\":33}],18:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Polynomial = require('./polynomial');\n\tvar Buffer = require('buffer').Buffer;\n\n\tfunction ReedSolomonEncoder (degree) {\n\t this.genPoly = undefined;\n\t this.degree = degree;\n\n\t if (this.degree) this.initialize(this.degree);\n\t}\n\n\t/**\n\t * Initialize the encoder.\n\t * The input param should correspond to the number of error correction codewords.\n\t *\n\t * @param {Number} degree\n\t */\n\tReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n\t // create an irreducible generator polynomial\n\t this.degree = degree;\n\t this.genPoly = Polynomial.generateECPolynomial(this.degree);\n\t};\n\n\t/**\n\t * Encodes a chunk of data\n\t *\n\t * @param {Buffer} data Buffer containing input data\n\t * @return {Buffer} Buffer containing encoded data\n\t */\n\tReedSolomonEncoder.prototype.encode = function encode (data) {\n\t if (!this.genPoly) {\n\t throw new Error('Encoder not initialized')\n\t }\n\n\t // Calculate EC for this data block\n\t // extends data size to data+genPoly size\n\t var pad = BufferUtil.alloc(this.degree);\n\t var paddedData = Buffer.concat([data, pad], data.length + this.degree);\n\n\t // The error correction codewords are the remainder after dividing the data codewords\n\t // by a generator polynomial\n\t var remainder = Polynomial.mod(paddedData, this.genPoly);\n\n\t // return EC data blocks (last n byte, where n is the degree of genPoly)\n\t // If coefficients number in remainder are less than genPoly degree,\n\t // pad with 0s to the left to reach the needed number of coefficients\n\t var start = this.degree - remainder.length;\n\t if (start > 0) {\n\t var buff = BufferUtil.alloc(this.degree);\n\t remainder.copy(buff, start);\n\n\t return buff\n\t }\n\n\t return remainder\n\t};\n\n\tmodule.exports = ReedSolomonEncoder;\n\n\t},{\"../utils/buffer\":28,\"./polynomial\":16,\"buffer\":30}],19:[function(require,module,exports){\n\tvar numeric = '[0-9]+';\n\tvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\n\tvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n\t '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n\t '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n\t '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\n\tkanji = kanji.replace(/u/g, '\\\\u');\n\n\tvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\n\n\texports.KANJI = new RegExp(kanji, 'g');\n\texports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\n\texports.BYTE = new RegExp(byte, 'g');\n\texports.NUMERIC = new RegExp(numeric, 'g');\n\texports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\n\n\tvar TEST_KANJI = new RegExp('^' + kanji + '$');\n\tvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\n\tvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\n\texports.testKanji = function testKanji (str) {\n\t return TEST_KANJI.test(str)\n\t};\n\n\texports.testNumeric = function testNumeric (str) {\n\t return TEST_NUMERIC.test(str)\n\t};\n\n\texports.testAlphanumeric = function testAlphanumeric (str) {\n\t return TEST_ALPHANUMERIC.test(str)\n\t};\n\n\t},{}],20:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar NumericData = require('./numeric-data');\n\tvar AlphanumericData = require('./alphanumeric-data');\n\tvar ByteData = require('./byte-data');\n\tvar KanjiData = require('./kanji-data');\n\tvar Regex = require('./regex');\n\tvar Utils = require('./utils');\n\tvar dijkstra = require('dijkstrajs');\n\n\t/**\n\t * Returns UTF8 byte length\n\t *\n\t * @param {String} str Input string\n\t * @return {Number} Number of byte\n\t */\n\tfunction getStringByteLength (str) {\n\t return unescape(encodeURIComponent(str)).length\n\t}\n\n\t/**\n\t * Get a list of segments of the specified mode\n\t * from a string\n\t *\n\t * @param {Mode} mode Segment mode\n\t * @param {String} str String to process\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegments (regex, mode, str) {\n\t var segments = [];\n\t var result;\n\n\t while ((result = regex.exec(str)) !== null) {\n\t segments.push({\n\t data: result[0],\n\t index: result.index,\n\t mode: mode,\n\t length: result[0].length\n\t });\n\t }\n\n\t return segments\n\t}\n\n\t/**\n\t * Extracts a series of segments with the appropriate\n\t * modes from a string\n\t *\n\t * @param {String} dataStr Input string\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegmentsFromString (dataStr) {\n\t var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n\t var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n\t var byteSegs;\n\t var kanjiSegs;\n\n\t if (Utils.isKanjiModeEnabled()) {\n\t byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n\t kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n\t } else {\n\t byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n\t kanjiSegs = [];\n\t }\n\n\t var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n\n\t return segs\n\t .sort(function (s1, s2) {\n\t return s1.index - s2.index\n\t })\n\t .map(function (obj) {\n\t return {\n\t data: obj.data,\n\t mode: obj.mode,\n\t length: obj.length\n\t }\n\t })\n\t}\n\n\t/**\n\t * Returns how many bits are needed to encode a string of\n\t * specified length with the specified mode\n\t *\n\t * @param {Number} length String length\n\t * @param {Mode} mode Segment mode\n\t * @return {Number} Bit length\n\t */\n\tfunction getSegmentBitsLength (length, mode) {\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return NumericData.getBitsLength(length)\n\t case Mode.ALPHANUMERIC:\n\t return AlphanumericData.getBitsLength(length)\n\t case Mode.KANJI:\n\t return KanjiData.getBitsLength(length)\n\t case Mode.BYTE:\n\t return ByteData.getBitsLength(length)\n\t }\n\t}\n\n\t/**\n\t * Merges adjacent segments which have the same mode\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction mergeSegments (segs) {\n\t return segs.reduce(function (acc, curr) {\n\t var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\t if (prevSeg && prevSeg.mode === curr.mode) {\n\t acc[acc.length - 1].data += curr.data;\n\t return acc\n\t }\n\n\t acc.push(curr);\n\t return acc\n\t }, [])\n\t}\n\n\t/**\n\t * Generates a list of all possible nodes combination which\n\t * will be used to build a segments graph.\n\t *\n\t * Nodes are divided by groups. Each group will contain a list of all the modes\n\t * in which is possible to encode the given text.\n\t *\n\t * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n\t * The group for '12345' will contain then 3 objects, one for each\n\t * possible encoding mode.\n\t *\n\t * Each node represents a possible segment.\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction buildNodes (segs) {\n\t var nodes = [];\n\t for (var i = 0; i < segs.length; i++) {\n\t var seg = segs[i];\n\n\t switch (seg.mode) {\n\t case Mode.NUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.ALPHANUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.KANJI:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t break\n\t case Mode.BYTE:\n\t nodes.push([\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t }\n\t }\n\n\t return nodes\n\t}\n\n\t/**\n\t * Builds a graph from a list of nodes.\n\t * All segments in each node group will be connected with all the segments of\n\t * the next group and so on.\n\t *\n\t * At each connection will be assigned a weight depending on the\n\t * segment's byte length.\n\t *\n\t * @param {Array} nodes Array of object with segments data\n\t * @param {Number} version QR Code version\n\t * @return {Object} Graph of all possible segments\n\t */\n\tfunction buildGraph (nodes, version) {\n\t var table = {};\n\t var graph = {'start': {}};\n\t var prevNodeIds = ['start'];\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t var nodeGroup = nodes[i];\n\t var currentNodeIds = [];\n\n\t for (var j = 0; j < nodeGroup.length; j++) {\n\t var node = nodeGroup[j];\n\t var key = '' + i + j;\n\n\t currentNodeIds.push(key);\n\t table[key] = { node: node, lastCount: 0 };\n\t graph[key] = {};\n\n\t for (var n = 0; n < prevNodeIds.length; n++) {\n\t var prevNodeId = prevNodeIds[n];\n\n\t if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n\t graph[prevNodeId][key] =\n\t getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n\t getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n\n\t table[prevNodeId].lastCount += node.length;\n\t } else {\n\t if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n\n\t graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n\t 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n\t }\n\t }\n\t }\n\n\t prevNodeIds = currentNodeIds;\n\t }\n\n\t for (n = 0; n < prevNodeIds.length; n++) {\n\t graph[prevNodeIds[n]]['end'] = 0;\n\t }\n\n\t return { map: graph, table: table }\n\t}\n\n\t/**\n\t * Builds a segment from a specified data and mode.\n\t * If a mode is not specified, the more suitable will be used.\n\t *\n\t * @param {String} data Input data\n\t * @param {Mode | String} modesHint Data mode\n\t * @return {Segment} Segment\n\t */\n\tfunction buildSingleSegment (data, modesHint) {\n\t var mode;\n\t var bestMode = Mode.getBestModeForData(data);\n\n\t mode = Mode.from(modesHint, bestMode);\n\n\t // Make sure data can be encoded\n\t if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n\t throw new Error('\"' + data + '\"' +\n\t ' cannot be encoded with mode ' + Mode.toString(mode) +\n\t '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n\t }\n\n\t // Use Mode.BYTE if Kanji support is disabled\n\t if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n\t mode = Mode.BYTE;\n\t }\n\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return new NumericData(data)\n\n\t case Mode.ALPHANUMERIC:\n\t return new AlphanumericData(data)\n\n\t case Mode.KANJI:\n\t return new KanjiData(data)\n\n\t case Mode.BYTE:\n\t return new ByteData(data)\n\t }\n\t}\n\n\t/**\n\t * Builds a list of segments from an array.\n\t * Array can contain Strings or Objects with segment's info.\n\t *\n\t * For each item which is a string, will be generated a segment with the given\n\t * string and the more appropriate encoding mode.\n\t *\n\t * For each item which is an object, will be generated a segment with the given\n\t * data and mode.\n\t * Objects must contain at least the property \"data\".\n\t * If property \"mode\" is not present, the more suitable mode will be used.\n\t *\n\t * @param {Array} array Array of objects with segments data\n\t * @return {Array} Array of Segments\n\t */\n\texports.fromArray = function fromArray (array) {\n\t return array.reduce(function (acc, seg) {\n\t if (typeof seg === 'string') {\n\t acc.push(buildSingleSegment(seg, null));\n\t } else if (seg.data) {\n\t acc.push(buildSingleSegment(seg.data, seg.mode));\n\t }\n\n\t return acc\n\t }, [])\n\t};\n\n\t/**\n\t * Builds an optimized sequence of segments from a string,\n\t * which will produce the shortest possible bitstream.\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of segments\n\t */\n\texports.fromString = function fromString (data, version) {\n\t var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n\n\t var nodes = buildNodes(segs);\n\t var graph = buildGraph(nodes, version);\n\t var path = dijkstra.find_path(graph.map, 'start', 'end');\n\n\t var optimizedSegs = [];\n\t for (var i = 1; i < path.length - 1; i++) {\n\t optimizedSegs.push(graph.table[path[i]].node);\n\t }\n\n\t return exports.fromArray(mergeSegments(optimizedSegs))\n\t};\n\n\t/**\n\t * Splits a string in various segments with the modes which\n\t * best represent their content.\n\t * The produced segments are far from being optimized.\n\t * The output of this function is only used to estimate a QR Code version\n\t * which may contain the data.\n\t *\n\t * @param {string} data Input string\n\t * @return {Array} Array of segments\n\t */\n\texports.rawSplit = function rawSplit (data) {\n\t return exports.fromArray(\n\t getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\t )\n\t};\n\n\t},{\"./alphanumeric-data\":3,\"./byte-data\":6,\"./kanji-data\":12,\"./mode\":14,\"./numeric-data\":15,\"./regex\":19,\"./utils\":21,\"dijkstrajs\":31}],21:[function(require,module,exports){\n\tvar toSJISFunction;\n\tvar CODEWORDS_COUNT = [\n\t 0, // Not used\n\t 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n\t 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n\t 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n\t 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n\t];\n\n\t/**\n\t * Returns the QR Code size for the specified version\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} size of QR code\n\t */\n\texports.getSymbolSize = function getSymbolSize (version) {\n\t if (!version) throw new Error('\"version\" cannot be null or undefined')\n\t if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n\t return version * 4 + 17\n\t};\n\n\t/**\n\t * Returns the total number of codewords used to store data and EC information.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Data length in bits\n\t */\n\texports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n\t return CODEWORDS_COUNT[version]\n\t};\n\n\t/**\n\t * Encode data with Bose-Chaudhuri-Hocquenghem\n\t *\n\t * @param {Number} data Value to encode\n\t * @return {Number} Encoded value\n\t */\n\texports.getBCHDigit = function (data) {\n\t var digit = 0;\n\n\t while (data !== 0) {\n\t digit++;\n\t data >>>= 1;\n\t }\n\n\t return digit\n\t};\n\n\texports.setToSJISFunction = function setToSJISFunction (f) {\n\t if (typeof f !== 'function') {\n\t throw new Error('\"toSJISFunc\" is not a valid function.')\n\t }\n\n\t toSJISFunction = f;\n\t};\n\n\texports.isKanjiModeEnabled = function () {\n\t return typeof toSJISFunction !== 'undefined'\n\t};\n\n\texports.toSJIS = function toSJIS (kanji) {\n\t return toSJISFunction(kanji)\n\t};\n\n\t},{}],22:[function(require,module,exports){\n\t/**\n\t * Check if QR Code version is valid\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Boolean} true if valid version, false otherwise\n\t */\n\texports.isValid = function isValid (version) {\n\t return !isNaN(version) && version >= 1 && version <= 40\n\t};\n\n\t},{}],23:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\tvar ECCode = require('./error-correction-code');\n\tvar ECLevel = require('./error-correction-level');\n\tvar Mode = require('./mode');\n\tvar VersionCheck = require('./version-check');\n\tvar isArray = require('isarray');\n\n\t// Generator polynomial used to encode version information\n\tvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n\tvar G18_BCH = Utils.getBCHDigit(G18);\n\n\tfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\tfunction getReservedBitsCount (mode, version) {\n\t // Character count indicator + mode indicator bits\n\t return Mode.getCharCountIndicator(mode, version) + 4\n\t}\n\n\tfunction getTotalBitsFromDataArray (segments, version) {\n\t var totalBits = 0;\n\n\t segments.forEach(function (data) {\n\t var reservedBits = getReservedBitsCount(data.mode, version);\n\t totalBits += reservedBits + data.getBitsLength();\n\t });\n\n\t return totalBits\n\t}\n\n\tfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t var length = getTotalBitsFromDataArray(segments, currentVersion);\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\t/**\n\t * Returns version number from a value.\n\t * If value is not a valid version, returns defaultValue\n\t *\n\t * @param {Number|String} value QR Code version\n\t * @param {Number} defaultValue Fallback value\n\t * @return {Number} QR Code version number\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (VersionCheck.isValid(value)) {\n\t return parseInt(value, 10)\n\t }\n\n\t return defaultValue\n\t};\n\n\t/**\n\t * Returns how much data can be stored with the specified QR code version\n\t * and error correction level\n\t *\n\t * @param {Number} version QR Code version (1-40)\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} Quantity of storable data\n\t */\n\texports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t // Use Byte mode as default\n\t if (typeof mode === 'undefined') mode = Mode.BYTE;\n\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n\t var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version);\n\n\t // Return max number of storable codewords\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return Math.floor((usableBits / 10) * 3)\n\n\t case Mode.ALPHANUMERIC:\n\t return Math.floor((usableBits / 11) * 2)\n\n\t case Mode.KANJI:\n\t return Math.floor(usableBits / 13)\n\n\t case Mode.BYTE:\n\t default:\n\t return Math.floor(usableBits / 8)\n\t }\n\t};\n\n\t/**\n\t * Returns the minimum version needed to contain the amount of data\n\t *\n\t * @param {Segment} data Segment of data\n\t * @param {Number} [errorCorrectionLevel=H] Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} QR Code version\n\t */\n\texports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n\t var seg;\n\n\t var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n\t if (isArray(data)) {\n\t if (data.length > 1) {\n\t return getBestVersionForMixedData(data, ecl)\n\t }\n\n\t if (data.length === 0) {\n\t return 1\n\t }\n\n\t seg = data[0];\n\t } else {\n\t seg = data;\n\t }\n\n\t return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n\t};\n\n\t/**\n\t * Returns version information with relative error correction bits\n\t *\n\t * The version information is included in QR Code symbols of version 7 or larger.\n\t * It consists of an 18-bit sequence containing 6 data bits,\n\t * with 12 error correction bits calculated using the (18, 6) Golay code.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Encoded version info bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (version) {\n\t if (!VersionCheck.isValid(version) || version < 7) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t var d = version << 12;\n\n\t while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n\t d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH));\n\t }\n\n\t return (version << 12) | d\n\t};\n\n\t},{\"./error-correction-code\":7,\"./error-correction-level\":8,\"./mode\":14,\"./utils\":21,\"./version-check\":22,\"isarray\":33}],24:[function(require,module,exports){\n\n\tvar canPromise = require('./can-promise');\n\n\tvar QRCode = require('./core/qrcode');\n\tvar CanvasRenderer = require('./renderer/canvas');\n\tvar SvgRenderer = require('./renderer/svg-tag.js');\n\n\tfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n\t var args = [].slice.call(arguments, 1);\n\t var argsNum = args.length;\n\t var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n\t if (!isLastArgCb && !canPromise()) {\n\t throw new Error('Callback required as last argument')\n\t }\n\n\t if (isLastArgCb) {\n\t if (argsNum < 2) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 2) {\n\t cb = text;\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 3) {\n\t if (canvas.getContext && typeof cb === 'undefined') {\n\t cb = opts;\n\t opts = undefined;\n\t } else {\n\t cb = opts;\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\t }\n\t } else {\n\t if (argsNum < 1) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 1) {\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 2 && !canvas.getContext) {\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\n\t return new Promise(function (resolve, reject) {\n\t try {\n\t var data = QRCode.create(text, opts);\n\t resolve(renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t reject(e);\n\t }\n\t })\n\t }\n\n\t try {\n\t var data = QRCode.create(text, opts);\n\t cb(null, renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t cb(e);\n\t }\n\t}\n\n\texports.create = QRCode.create;\n\texports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\n\texports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n\t// only svg for now.\n\texports.toString = renderCanvas.bind(null, function (data, _, opts) {\n\t return SvgRenderer.render(data, opts)\n\t});\n\n\t},{\"./can-promise\":1,\"./core/qrcode\":17,\"./renderer/canvas\":25,\"./renderer/svg-tag.js\":26}],25:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction clearCanvas (ctx, canvas, size) {\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t if (!canvas.style) canvas.style = {};\n\t canvas.height = size;\n\t canvas.width = size;\n\t canvas.style.height = size + 'px';\n\t canvas.style.width = size + 'px';\n\t}\n\n\tfunction getCanvasElement () {\n\t try {\n\t return document.createElement('canvas')\n\t } catch (e) {\n\t throw new Error('You need to specify a canvas element')\n\t }\n\t}\n\n\texports.render = function render (qrData, canvas, options) {\n\t var opts = options;\n\t var canvasEl = canvas;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!canvas) {\n\t canvasEl = getCanvasElement();\n\t }\n\n\t opts = Utils.getOptions(opts);\n\t var size = Utils.getImageWidth(qrData.modules.size, opts);\n\n\t var ctx = canvasEl.getContext('2d');\n\t var image = ctx.createImageData(size, size);\n\t Utils.qrToImageData(image.data, qrData, opts);\n\n\t clearCanvas(ctx, canvasEl, size);\n\t ctx.putImageData(image, 0, 0);\n\n\t return canvasEl\n\t};\n\n\texports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n\t var opts = options;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!opts) opts = {};\n\n\t var canvasEl = exports.render(qrData, canvas, opts);\n\n\t var type = opts.type || 'image/png';\n\t var rendererOpts = opts.rendererOpts || {};\n\n\t return canvasEl.toDataURL(type, rendererOpts.quality)\n\t};\n\n\t},{\"./utils\":27}],26:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction getColorAttrib (color, attrib) {\n\t var alpha = color.a / 255;\n\t var str = attrib + '=\"' + color.hex + '\"';\n\n\t return alpha < 1\n\t ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n\t : str\n\t}\n\n\tfunction svgCmd (cmd, x, y) {\n\t var str = cmd + x;\n\t if (typeof y !== 'undefined') str += ' ' + y;\n\n\t return str\n\t}\n\n\tfunction qrToPath (data, size, margin) {\n\t var path = '';\n\t var moveBy = 0;\n\t var newRow = false;\n\t var lineLength = 0;\n\n\t for (var i = 0; i < data.length; i++) {\n\t var col = Math.floor(i % size);\n\t var row = Math.floor(i / size);\n\n\t if (!col && !newRow) newRow = true;\n\n\t if (data[i]) {\n\t lineLength++;\n\n\t if (!(i > 0 && col > 0 && data[i - 1])) {\n\t path += newRow\n\t ? svgCmd('M', col + margin, 0.5 + row + margin)\n\t : svgCmd('m', moveBy, 0);\n\n\t moveBy = 0;\n\t newRow = false;\n\t }\n\n\t if (!(col + 1 < size && data[i + 1])) {\n\t path += svgCmd('h', lineLength);\n\t lineLength = 0;\n\t }\n\t } else {\n\t moveBy++;\n\t }\n\t }\n\n\t return path\n\t}\n\n\texports.render = function render (qrData, options, cb) {\n\t var opts = Utils.getOptions(options);\n\t var size = qrData.modules.size;\n\t var data = qrData.modules.data;\n\t var qrcodesize = size + opts.margin * 2;\n\n\t var bg = !opts.color.light.a\n\t ? ''\n\t : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n\t ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>';\n\n\t var path =\n\t '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n\t ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>';\n\n\t var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n\n\t var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n\n\t var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n';\n\n\t if (typeof cb === 'function') {\n\t cb(null, svgTag);\n\t }\n\n\t return svgTag\n\t};\n\n\t},{\"./utils\":27}],27:[function(require,module,exports){\n\tfunction hex2rgba (hex) {\n\t if (typeof hex === 'number') {\n\t hex = hex.toString();\n\t }\n\n\t if (typeof hex !== 'string') {\n\t throw new Error('Color should be defined as hex string')\n\t }\n\n\t var hexCode = hex.slice().replace('#', '').split('');\n\t if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n\t throw new Error('Invalid hex color: ' + hex)\n\t }\n\n\t // Convert from short to long form (fff -> ffffff)\n\t if (hexCode.length === 3 || hexCode.length === 4) {\n\t hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n\t return [c, c]\n\t }));\n\t }\n\n\t // Add default alpha value\n\t if (hexCode.length === 6) hexCode.push('F', 'F');\n\n\t var hexValue = parseInt(hexCode.join(''), 16);\n\n\t return {\n\t r: (hexValue >> 24) & 255,\n\t g: (hexValue >> 16) & 255,\n\t b: (hexValue >> 8) & 255,\n\t a: hexValue & 255,\n\t hex: '#' + hexCode.slice(0, 6).join('')\n\t }\n\t}\n\n\texports.getOptions = function getOptions (options) {\n\t if (!options) options = {};\n\t if (!options.color) options.color = {};\n\n\t var margin = typeof options.margin === 'undefined' ||\n\t options.margin === null ||\n\t options.margin < 0 ? 4 : options.margin;\n\n\t var width = options.width && options.width >= 21 ? options.width : undefined;\n\t var scale = options.scale || 4;\n\n\t return {\n\t width: width,\n\t scale: width ? 4 : scale,\n\t margin: margin,\n\t color: {\n\t dark: hex2rgba(options.color.dark || '#000000ff'),\n\t light: hex2rgba(options.color.light || '#ffffffff')\n\t },\n\t type: options.type,\n\t rendererOpts: options.rendererOpts || {}\n\t }\n\t};\n\n\texports.getScale = function getScale (qrSize, opts) {\n\t return opts.width && opts.width >= qrSize + opts.margin * 2\n\t ? opts.width / (qrSize + opts.margin * 2)\n\t : opts.scale\n\t};\n\n\texports.getImageWidth = function getImageWidth (qrSize, opts) {\n\t var scale = exports.getScale(qrSize, opts);\n\t return Math.floor((qrSize + opts.margin * 2) * scale)\n\t};\n\n\texports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n\t var size = qr.modules.size;\n\t var data = qr.modules.data;\n\t var scale = exports.getScale(size, opts);\n\t var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n\t var scaledMargin = opts.margin * scale;\n\t var palette = [opts.color.light, opts.color.dark];\n\n\t for (var i = 0; i < symbolSize; i++) {\n\t for (var j = 0; j < symbolSize; j++) {\n\t var posDst = (i * symbolSize + j) * 4;\n\t var pxColor = opts.color.light;\n\n\t if (i >= scaledMargin && j >= scaledMargin &&\n\t i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n\t var iSrc = Math.floor((i - scaledMargin) / scale);\n\t var jSrc = Math.floor((j - scaledMargin) / scale);\n\t pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n\t }\n\n\t imgData[posDst++] = pxColor.r;\n\t imgData[posDst++] = pxColor.g;\n\t imgData[posDst++] = pxColor.b;\n\t imgData[posDst] = pxColor.a;\n\t }\n\t }\n\t};\n\n\t},{}],28:[function(require,module,exports){\n\n\tvar isArray = require('isarray');\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }};\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff;\n\n\tfunction Buffer (arg, offset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, offset, length)\n\t }\n\n\t if (typeof arg === 'number') {\n\t return allocUnsafe(this, arg)\n\t }\n\n\t return from(this, arg, offset, length)\n\t}\n\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype;\n\t Buffer.__proto__ = Uint8Array;\n\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\n\tfunction createBuffer (that, length) {\n\t var buf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t buf = new Uint8Array(length);\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = that;\n\t if (buf === null) {\n\t buf = new Buffer(length);\n\t }\n\t buf.length = length;\n\t }\n\n\t return buf\n\t}\n\n\tfunction allocUnsafe (that, size) {\n\t var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t buf[i] = 0;\n\t }\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromString (that, string) {\n\t var length = byteLength(string) | 0;\n\t var buf = createBuffer(that, length);\n\n\t var actual = buf.write(string);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(that, length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = fromArrayLike(that, buf);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(that, len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction byteLength (string) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string;\n\t }\n\n\t var len = string.length;\n\t if (len === 0) return 0\n\n\t return utf8ToBytes(string).length\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction from (that, value, offset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, offset, length)\n\t }\n\n\t if (typeof value === 'string') {\n\t return fromString(that, value)\n\t }\n\n\t return fromObject(that, value)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0;\n\t if (isFinite(length)) {\n\t length = length | 0;\n\t } else {\n\t length = undefined;\n\t }\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t return utf8Write(this, string, offset, length)\n\t};\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype;\n\t } else {\n\t var sliceLen = end - start;\n\t newBuf = new Buffer(sliceLen, undefined);\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start];\n\t }\n\t }\n\n\t return newBuf\n\t};\n\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\t var i;\n\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\tBuffer.prototype.fill = function fill (val, start, end) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t end = this.length;\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if (code < 256) {\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val);\n\t var len = bytes.length;\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return createBuffer(null, 0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = allocUnsafe(null, length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tBuffer.byteLength = byteLength;\n\n\tBuffer.prototype._isBuffer = true;\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t};\n\n\tmodule.exports.alloc = function (size) {\n\t var buffer = new Buffer(size);\n\t buffer.fill(0);\n\t return buffer\n\t};\n\n\tmodule.exports.from = function (data) {\n\t return new Buffer(data)\n\t};\n\n\t},{\"isarray\":33}],29:[function(require,module,exports){\n\n\texports.byteLength = byteLength;\n\texports.toByteArray = toByteArray;\n\texports.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(\n\t uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n\t ));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\t},{}],30:[function(require,module,exports){\n\n\tvar base64 = require('base64-js');\n\tvar ieee754 = require('ieee754');\n\tvar customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n\t ? Symbol.for('nodejs.util.inspect.custom')\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tvar K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t var proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (ArrayBuffer.isView(value)) {\n\t return fromArrayLike(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, ArrayBuffer) ||\n\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t var valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t var b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(\n\t value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n\t )\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t var length = byteLength(string, encoding) | 0;\n\t var buf = createBuffer(length);\n\n\t var actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t var x = a.length;\n\t var y = b.length;\n\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = Buffer.allocUnsafe(length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (isInstance(buf, Uint8Array)) {\n\t buf = Buffer.from(buf);\n\t }\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t var len = string.length;\n\t var mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t var i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = '';\n\t var max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, Uint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t var x = thisEnd - thisStart;\n\t var y = end - start;\n\t var len = Math.min(x, y);\n\n\t var thisCopy = this.slice(thisStart, thisEnd);\n\t var targetCopy = target.slice(start, end);\n\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1;\n\t var arrLength = arr.length;\n\t var valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t var i;\n\t if (dir) {\n\t var foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true;\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t var remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t var strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t var res = [];\n\n\t var i = start;\n\t while (i < end) {\n\t var firstByte = buf[i];\n\t var codePoint = null;\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = '';\n\t var i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t var out = '';\n\t for (var i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end);\n\t var res = '';\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t var val = this[offset + --byteLength];\n\t var mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var i = byteLength;\n\t var mul = 1;\n\t var val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var mul = 1;\n\t var i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = 0;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\n\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (var i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t var len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo;\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tvar hexSliceLookupTable = (function () {\n\t var alphabet = '0123456789abcdef';\n\t var table = new Array(256);\n\t for (var i = 0; i < 16; ++i) {\n\t var i16 = i * 16;\n\t for (var j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t},{\"base64-js\":29,\"ieee754\":32}],31:[function(require,module,exports){\n\n\t/******************************************************************************\n\t * Created 2008-08-19.\n\t *\n\t * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n\t *\n\t * Copyright (C) 2008\n\t * Wyatt Baldwin <self@wyattbaldwin.com>\n\t * All rights reserved\n\t *\n\t * Licensed under the MIT license.\n\t *\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *****************************************************************************/\n\tvar dijkstra = {\n\t single_source_shortest_paths: function(graph, s, d) {\n\t // Predecessor map for each node that has been encountered.\n\t // node ID => predecessor node ID\n\t var predecessors = {};\n\n\t // Costs of shortest paths from s to all nodes encountered.\n\t // node ID => cost\n\t var costs = {};\n\t costs[s] = 0;\n\n\t // Costs of shortest paths from s to all nodes encountered; differs from\n\t // `costs` in that it provides easy access to the node that currently has\n\t // the known shortest path from s.\n\t // XXX: Do we actually need both `costs` and `open`?\n\t var open = dijkstra.PriorityQueue.make();\n\t open.push(s, 0);\n\n\t var closest,\n\t u, v,\n\t cost_of_s_to_u,\n\t adjacent_nodes,\n\t cost_of_e,\n\t cost_of_s_to_u_plus_cost_of_e,\n\t cost_of_s_to_v,\n\t first_visit;\n\t while (!open.empty()) {\n\t // In the nodes remaining in graph that have a known cost from s,\n\t // find the node, u, that currently has the shortest path from s.\n\t closest = open.pop();\n\t u = closest.value;\n\t cost_of_s_to_u = closest.cost;\n\n\t // Get nodes adjacent to u...\n\t adjacent_nodes = graph[u] || {};\n\n\t // ...and explore the edges that connect u to those nodes, updating\n\t // the cost of the shortest paths to any or all of those nodes as\n\t // necessary. v is the node across the current edge from u.\n\t for (v in adjacent_nodes) {\n\t if (adjacent_nodes.hasOwnProperty(v)) {\n\t // Get the cost of the edge running from u to v.\n\t cost_of_e = adjacent_nodes[v];\n\n\t // Cost of s to u plus the cost of u to v across e--this is *a*\n\t // cost from s to v that may or may not be less than the current\n\t // known cost to v.\n\t cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n\t // If we haven't visited v yet OR if the current known cost from s to\n\t // v is greater than the new cost we just found (cost of s to u plus\n\t // cost of u to v across e), update v's cost in the cost list and\n\t // update v's predecessor in the predecessor list (it's now u).\n\t cost_of_s_to_v = costs[v];\n\t first_visit = (typeof costs[v] === 'undefined');\n\t if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n\t costs[v] = cost_of_s_to_u_plus_cost_of_e;\n\t open.push(v, cost_of_s_to_u_plus_cost_of_e);\n\t predecessors[v] = u;\n\t }\n\t }\n\t }\n\t }\n\n\t if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n\t var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n\t throw new Error(msg);\n\t }\n\n\t return predecessors;\n\t },\n\n\t extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n\t var nodes = [];\n\t var u = d;\n\t var predecessor;\n\t while (u) {\n\t nodes.push(u);\n\t predecessor = predecessors[u];\n\t u = predecessors[u];\n\t }\n\t nodes.reverse();\n\t return nodes;\n\t },\n\n\t find_path: function(graph, s, d) {\n\t var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n\t return dijkstra.extract_shortest_path_from_predecessor_list(\n\t predecessors, d);\n\t },\n\n\t /**\n\t * A very naive priority queue implementation.\n\t */\n\t PriorityQueue: {\n\t make: function (opts) {\n\t var T = dijkstra.PriorityQueue,\n\t t = {},\n\t key;\n\t opts = opts || {};\n\t for (key in T) {\n\t if (T.hasOwnProperty(key)) {\n\t t[key] = T[key];\n\t }\n\t }\n\t t.queue = [];\n\t t.sorter = opts.sorter || T.default_sorter;\n\t return t;\n\t },\n\n\t default_sorter: function (a, b) {\n\t return a.cost - b.cost;\n\t },\n\n\t /**\n\t * Add a new item to the queue and ensure the highest priority element\n\t * is at the front of the queue.\n\t */\n\t push: function (value, cost) {\n\t var item = {value: value, cost: cost};\n\t this.queue.push(item);\n\t this.queue.sort(this.sorter);\n\t },\n\n\t /**\n\t * Return the highest priority element in the queue.\n\t */\n\t pop: function () {\n\t return this.queue.shift();\n\t },\n\n\t empty: function () {\n\t return this.queue.length === 0;\n\t }\n\t }\n\t};\n\n\n\t// node.js module exports\n\tif (typeof module !== 'undefined') {\n\t module.exports = dijkstra;\n\t}\n\n\t},{}],32:[function(require,module,exports){\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\n\t},{}],33:[function(require,module,exports){\n\tvar toString = {}.toString;\n\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\t},{}]},{},[24])(24)\n\t});\n\n\n\t});\n\n\tvar index = {\n\t name: 'qrcode',\n\t props: {\n\t /**\n\t * The value of the QR code.\n\t */\n\t value: null,\n\n\t /**\n\t * The options for the QR code generator.\n\t * {@link https://github.com/soldair/node-qrcode#qr-code-options}\n\t */\n\t options: Object,\n\n\t /**\n\t * The tag name of the component's root element.\n\t */\n\t tag: {\n\t type: String,\n\t default: 'canvas'\n\t }\n\t },\n\t render: function render(createElement) {\n\t return createElement(this.tag, this.$slots.default);\n\t },\n\t watch: {\n\t $props: {\n\t deep: true,\n\t immediate: true,\n\n\t /**\n\t * Update the QR code when props changed.\n\t */\n\t handler: function handler() {\n\t if (this.$el) {\n\t this.generate();\n\t }\n\t }\n\t }\n\t },\n\t methods: {\n\t /**\n\t * Generate QR code.\n\t */\n\t generate: function generate() {\n\t var _this = this;\n\n\t var options = this.options,\n\t tag = this.tag;\n\t var value = String(this.value);\n\n\t if (tag === 'canvas') {\n\t qrcode.toCanvas(this.$el, value, options, function (error) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\t });\n\t } else if (tag === 'img') {\n\t qrcode.toDataURL(value, options, function (error, url) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.src = url;\n\t });\n\t } else {\n\t qrcode.toString(value, options, function (error, string) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.innerHTML = string;\n\t });\n\t }\n\t }\n\t },\n\t mounted: function mounted() {\n\t this.generate();\n\t }\n\t};\n\n\treturn index;\n\n})));\n","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\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, `.share-expiry-time[data-v-66d8c844]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-66d8c844]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-66d8c844]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-66d8c844]{padding:var(--border-radius-element);max-width:300px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue\"],\"names\":[],\"mappings\":\"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.share-expiry-time {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n .hint-icon {\\n padding: 0;\\n margin: 0;\\n width: 24px;\\n height: 24px;\\n }\\n}\\n\\n.hint-heading {\\n text-align: center;\\n font-size: 1rem;\\n margin-top: 8px;\\n padding-bottom: 8px;\\n margin-bottom: 0;\\n border-bottom: 1px solid var(--color-border);\\n}\\n\\n.hint-body {\\n padding: var(--border-radius-element);\\n max-width: 300px;\\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, `.sharing-entry__internal .avatar-external[data-v-57874406]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-57874406]{opacity:1;color:var(--color-success)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue\"],\"names\":[],\"mappings\":\"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.sharing-entry__internal {\\n\\t.avatar-external {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-success);\\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, `.sharing-entry[data-v-44339fa4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-44339fa4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-44339fa4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-44339fa4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-44339fa4]{margin-inline-start:auto !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\t&__desc {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tposition: relative;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__title {\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tmax-width: inherit;\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\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, `.sharing-entry__inherited .avatar-shared[data-v-a6cc72e6]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingInherited.vue\"],\"names\":[],\"mappings\":\"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA\",\"sourcesContent\":[\"\\n.sharing-entry__inherited {\\n\\t.avatar-shared {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\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, `.sharingTabDetailsView[data-v-4d0ee506]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4d0ee506]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4d0ee506]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4d0ee506]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4d0ee506]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4d0ee506]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4d0ee506]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4d0ee506] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4d0ee506]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4d0ee506]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4d0ee506]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4d0ee506]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4d0ee506] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4d0ee506]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4d0ee506]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4d0ee506]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4d0ee506]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-4d0ee506]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4d0ee506]:first-child{margin-inline-start:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA\",\"sourcesContent\":[\"\\n.sharingTabDetailsView {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0.2em;\\n\\n\\t\\tspan {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\th1 {\\n\\t\\t\\t\\tfont-size: 15px;\\n\\t\\t\\t\\tpadding-inline-start: 0.3em;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: relative;\\n\\t\\toverflow: scroll;\\n\\t\\tflex-shrink: 1;\\n\\t\\tpadding: 4px;\\n\\t\\tpadding-inline-end: 12px;\\n\\t}\\n\\n\\t&__quick-permissions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0 auto;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\tspan:nth-child(1) {\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\t\\tpadding: 0.1em;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t:deep(label span) {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\\n\\t\\t\\t\\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\\n\\t\\t\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t\\t\\t.subline {\\n\\t\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced-control {\\n\\t\\twidth: 100%;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\ttext-align: start;\\n\\t\\tpadding-inline-start: 0;\\n\\n\\t\\tsection {\\n\\n\\t\\t\\ttextarea,\\n\\t\\t\\tdiv.mx-datepicker {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\ttextarea {\\n\\t\\t\\t\\theight: 80px;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/*\\n\\t\\t\\t The following style is applied out of the component's scope\\n\\t\\t\\t to remove padding from the label.checkbox-radio-switch__label,\\n\\t\\t\\t which is used to group radio checkbox items. The use of ::v-deep\\n\\t\\t\\t ensures that the padding is modified without being affected by\\n\\t\\t\\t the component's scoping.\\n\\t\\t\\t Without this achieving left alignment for the checkboxes would not\\n\\t\\t\\t be possible.\\n\\t\\t\\t*/\\n\\t\\t\\tspan :deep(label) {\\n\\t\\t\\t\\tpadding-inline-start: 0 !important;\\n\\t\\t\\t\\tbackground-color: initial !important;\\n\\t\\t\\t\\tborder: none !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\tsection.custom-permissions-group {\\n\\t\\t\\t\\tpadding-inline-start: 1.5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding-block-end: 6px;\\n\\t}\\n\\n\\t&__delete {\\n\\t\\t> button:first-child {\\n\\t\\t\\tcolor: rgb(223, 7, 7);\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: flex-start;\\n\\t\\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\\n\\n\\t\\t.button-group {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmargin-top: 16px;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-inline-start: 16px;\\n\\n\\t\\t\\t\\t&:first-child {\\n\\t\\t\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-fe8ed59e]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-fe8ed59e]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-fe8ed59e]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-fe8ed59e]{margin-inline-start:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.sections.length > 0 }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1),_vm._v(\" \"),(_vm.sections.length > 0 && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,1027936137)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"sharingTab__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.fileInfo),{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('CollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!./index-CJAYjuyf.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./index-CJAYjuyf.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import './assets/index-CJAYjuyf.css';\nimport { t } from \"@nextcloud/l10n\";\nimport NcAvatar from \"@nextcloud/vue/dist/Components/NcAvatar.js\";\nimport NcSelect from \"@nextcloud/vue/dist/Components/NcSelect.js\";\nimport debounce from \"lodash-es/debounce.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport { reactive, set } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nclass CollectionService {\n constructor() {\n this.http = axios;\n }\n listCollection(collectionId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }));\n }\n renameCollection(collectionId, collectionName) {\n return this.http.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n collectionName\n }).then((result) => {\n return result.data.ocs.data;\n });\n }\n getCollectionsByResource(resourceType, resourceId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then((result) => {\n return result.data.ocs.data;\n });\n }\n createCollection(resourceType, resourceId, name) {\n return this.http.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), {\n name\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n addResource(collectionId, resourceType, resourceId) {\n resourceId = \"\" + resourceId;\n return this.http.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n resourceType,\n resourceId\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n removeResource(collectionId, resourceType, resourceId) {\n return this.http.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then((response) => {\n return response.data.ocs.data;\n });\n }\n search(query) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then((response) => {\n return response.data.ocs.data;\n });\n }\n}\nconst service = new CollectionService();\nconst state = reactive({\n collections: []\n});\nconst mutations = {\n addCollections(collections) {\n set(state, \"collections\", collections);\n },\n addCollection(collection) {\n state.collections.push(collection);\n },\n removeCollection(collectionId) {\n set(state, \"collections\", state.collections.filter((item) => item.id !== collectionId));\n },\n updateCollection(collection) {\n const index = state.collections.findIndex((_item) => _item.id === collection.id);\n if (index !== -1) {\n set(state.collections, index, collection);\n } else {\n state.collections.push(collection);\n }\n }\n};\nconst actions = {\n fetchCollectionsByResource({ resourceType, resourceId }) {\n return service.getCollectionsByResource(resourceType, resourceId).then((collections) => {\n mutations.addCollections(collections);\n return collections;\n });\n },\n createCollection({ baseResourceType, baseResourceId, resourceType, resourceId, name }) {\n return service.createCollection(baseResourceType, baseResourceId, name).then((collection) => {\n mutations.addCollection(collection);\n actions.addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n });\n },\n renameCollection({ collectionId, name }) {\n return service.renameCollection(collectionId, name).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n addResourceToCollection({ collectionId, resourceType, resourceId }) {\n return service.addResource(collectionId, resourceType, resourceId).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n removeResource({ collectionId, resourceType, resourceId }) {\n return service.removeResource(collectionId, resourceType, resourceId).then((collection) => {\n if (collection.resources.length > 0) {\n mutations.updateCollection(collection);\n } else {\n mutations.removeCollection(collection);\n }\n });\n },\n search(query) {\n return service.search(query);\n }\n};\nfunction normalizeComponent(scriptExports, render3, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render3) {\n options.render = render3;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$1 = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: false,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n limitedResources() {\n return (collection) => collection.resources ? collection.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n hideDetails() {\n this.detailsOpen = false;\n },\n removeResource(collection, resource) {\n actions.removeResource({\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n actions.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((collection) => {\n this.newName = null;\n }).catch((e) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\"));\n console.error(e);\n setTimeout(() => {\n set(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"shouldshake\": _vm.error.rename }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.limitedResources(_vm.collection), function(resource) {\n return _c(\"a\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } })]);\n }), 0) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"core\", \"Hide details\") : _vm.t(\"core\", \"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error.rename ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error.rename) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.collection.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(\"a\", { attrs: { \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })]);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"42733c12\",\n null,\n null\n);\nconst CollectionListItem = __component__$1.exports;\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _debouncedSearch = debounce(\n function(query, loading) {\n if (query !== \"\") {\n loading(true);\n actions.search(query).then((collections) => {\n this.searchCollections = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n },\n 500,\n {}\n);\nconst _sfc_main = {\n name: \"CollectionList\",\n components: {\n CollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n return {\n state\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((collection) => {\n return typeof collection.resources.find((resource) => resource && resource.id === \"\" + this.id && resource.type === this.type) !== \"undefined\";\n });\n },\n placeholder() {\n return this.isSelectOpen ? t(\"core\", \"Type to search for existing projects\") : t(\"core\", \"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (this.collections.findIndex((collection) => collection.id === this.searchCollections[index].id) === -1) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n }\n },\n watch: {\n type() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n id() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n isActive(isActive) {\n if (isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n }\n },\n mounted() {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n t,\n select(selectedOption, id) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((id2) => {\n actions.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId: id2,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n actions.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), e);\n });\n }\n },\n search(query, loading) {\n _debouncedSearch.bind(this)(query, loading);\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = false;\n },\n isVueComponent(object) {\n return object._isVue;\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"core\", \"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"CollectionListItem\", { key: collection.id, attrs: { \"collection\": collection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"8ebb2593\",\n null,\n null\n);\nconst CollectionList = __component__.exports;\nexport {\n CollectionList,\n CollectionListItem\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n // eslint-disable-next-line camelcase\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n // eslint-disable-next-line camelcase\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the default days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n * @return {boolean}\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { isFileRequest } from '../services/SharingService';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param {object} ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch (e) {\n console.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return {object} the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n * @return {string} date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n * @param {string} date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Password expiration time\n * @return {string} date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n * @param {string} passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param {boolean} sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n * @return {string} 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, File, Permission, davRemoteURL, davRootPath } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nimport logger from './logger';\nconst headers = {\n 'Content-Type': 'application/json',\n};\nconst ocsEntryToNode = async function (ocsEntry) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n ocsEntry.item_type = ocsEntry.type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${davRemoteURL}${davRootPath}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: davRootPath,\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n};\nconst getShares = function (shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n};\nconst getSharedWithYou = function () {\n return getShares(true);\n};\nconst getSharedWithOthers = function () {\n return getShares();\n};\nconst getRemoteShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getPendingShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getRemotePendingShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\nconst getDeletedShares = function () {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n};\n/**\n * Check if a file request is enabled\n * @param attributes the share attributes json-encoded array\n */\nexport const isFileRequest = (attributes = '[]') => {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n};\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nconst groupBy = function (nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n};\nexport const getContents = async (sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) => {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map(node => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${davRemoteURL}${davRootPath}`,\n owner: getCurrentUser()?.uid || null,\n }),\n contents,\n };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<slot name=\"avatar\" />\n\t\t<div class=\"sharing-entry__desc\">\n\t\t\t<span class=\"sharing-entry__title\">{{ title }}</span>\n\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t</div>\n\t\t<NcActions v-if=\"$slots['default']\"\n\t\t\tref=\"actionsComponent\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:aria-expanded=\"ariaExpandedValue\">\n\t\t\t<slot />\n\t\t</NcActions>\n\t</li>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/components/NcActions'\n\nexport default {\n\tname: 'SharingEntrySimple',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tariaExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tariaExpandedValue() {\n\t\t\tif (this.ariaExpanded === null) {\n\t\t\t\treturn this.ariaExpanded\n\t\t\t}\n\t\t\treturn this.ariaExpanded ? 'true' : 'false'\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\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!./SharingEntrySimple.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!./SharingEntrySimple.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!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=44339fa4&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&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 \"44339fa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],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!./SharingEntryInternal.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!./SharingEntryInternal.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<SharingEntrySimple ref=\"shareEntrySimple\"\n\t\t\tclass=\"sharing-entry__internal\"\n\t\t\t:title=\"t('files_sharing', 'Internal link')\"\n\t\t\t:subtitle=\"internalLinkSubtitle\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-external icon-external-white\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton :title=\"copyLinkTooltip\"\n\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t@click=\"copyLink\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</SharingEntrySimple>\n\t</ul>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showSuccess } from '@nextcloud/dialogs'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\n\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\n\nimport SharingEntrySimple from './SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInternal',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntrySimple,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Get the internal link to this file id\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinternalLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy internal link to clipboard')\n\t\t},\n\n\t\tinternalLinkSubtitle() {\n\t\t\tif (this.fileInfo.type === 'dir') {\n\t\t\t\treturn t('files_sharing', 'Only works for people with access to this folder')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Only works for people with access to this file')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.internalLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\tthis.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\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!./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=57874406&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=57874406&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 \"57874406\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal ? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nimport { emit } from '@nextcloud/event-bus'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while creating share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tshowError(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while deleting share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while updating share', error)\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nexport const BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share = {}\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.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!./SharingInput.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharing-search\">\n\t\t<label class=\"hidden-visually\" :for=\"shareInputId\">\n\t\t\t{{ isExternal ? t('files_sharing', 'Enter external recipients')\n\t\t\t\t: t('files_sharing', 'Search for internal recipients') }}\n\t\t</label>\n\t\t<NcSelect ref=\"select\"\n\t\t\tv-model=\"value\"\n\t\t\t:input-id=\"shareInputId\"\n\t\t\tclass=\"sharing-search__input\"\n\t\t\t:disabled=\"!canReshare\"\n\t\t\t:loading=\"loading\"\n\t\t\t:filterable=\"false\"\n\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:user-select=\"true\"\n\t\t\t:options=\"options\"\n\t\t\t:label-outside=\"true\"\n\t\t\t@search=\"asyncFind\"\n\t\t\t@option:selected=\"onSelected\">\n\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t{{ search ? noResultText : placeholder }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t</div>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingInput',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmixins: [ShareRequests, ShareDetails],\n\n\tprops: {\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tlinkShares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\treshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisExternal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tshareInputId: `share-input-${Math.random().toString(36).slice(2, 7)}`,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tloading: false,\n\t\t\tquery: '',\n\t\t\trecommendations: [],\n\t\t\tShareSearch: OCA.Sharing.ShareSearch.state,\n\t\t\tsuggestions: [],\n\t\t\tvalue: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Implement ShareSearch\n\t\t * allows external appas to inject new\n\t\t * results into the autocomplete dropdown\n\t\t * Used for the guests app\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalResults() {\n\t\t\treturn this.ShareSearch.results\n\t\t},\n\t\tinputPlaceholder() {\n\t\t\tconst allowRemoteSharing = this.config.isRemoteShareAllowed\n\n\t\t\tif (!this.canReshare) {\n\t\t\t\treturn t('files_sharing', 'Resharing is not allowed')\n\t\t\t}\n\t\t\tif (this.placeholder) {\n\t\t\t\treturn this.placeholder\n\t\t\t}\n\n\t\t\t// We can always search with email addresses for users too\n\t\t\tif (!allowRemoteSharing) {\n\t\t\t\treturn t('files_sharing', 'Name or email …')\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Name, email, or Federated Cloud ID …')\n\t\t},\n\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.isValidQuery) {\n\t\t\t\treturn this.suggestions\n\t\t\t}\n\t\t\treturn this.recommendations\n\t\t},\n\n\t\tnoResultText() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('files_sharing', 'Searching …')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'No elements found.')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.isExternal) {\n\t\t\t// We can only recommend users, groups etc for internal shares\n\t\t\tthis.getRecommendations()\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonSelected(option) {\n\t\t\tthis.value = null // Reset selected option\n\t\t\tthis.openSharingDetails(option)\n\t\t},\n\n\t\tasync asyncFind(query) {\n\t\t\t// save current query to check if we display\n\t\t\t// recommendations or search results\n\t\t\tthis.query = query.trim()\n\t\t\tif (this.isValidQuery) {\n\t\t\t\t// start loading now to have proper ux feedback\n\t\t\t\t// during the debounce\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.debounceGetSuggestions(query)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get suggestions\n\t\t *\n\t\t * @param {string} search the search query\n\t\t * @param {boolean} [lookup] search on lookup server\n\t\t */\n\t\tasync getSuggestions(search, lookup = false) {\n\t\t\tthis.loading = true\n\n\t\t\tif (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n\t\t\t\tlookup = true\n\t\t\t}\n\n\t\t\tlet shareType = []\n\n\t\t\tconst remoteTypes = [ShareType.Remote, ShareType.RemoteGroup]\n\n\t\t\tif (this.isExternal && !this.config.showFederatedSharesAsInternal) {\n\t\t\t\tshareType.push(...remoteTypes)\n\t\t\t} else {\n\t\t\t\tshareType = shareType.concat([\n\t\t\t\t\tShareType.User,\n\t\t\t\t\tShareType.Group,\n\t\t\t\t\tShareType.Team,\n\t\t\t\t\tShareType.Room,\n\t\t\t\t\tShareType.Guest,\n\t\t\t\t\tShareType.Deck,\n\t\t\t\t\tShareType.ScienceMesh,\n\t\t\t\t])\n\n\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\tshareType.push(...remoteTypes)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (getCapabilities().files_sharing.public.enabled === true && this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Email)\n\t\t\t}\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\tlookup,\n\t\t\t\t\t\tperPage: this.config.maxAutocompleteResults,\n\t\t\t\t\t\tshareType,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching suggestions', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst data = request.data.ocs.data\n\t\t\tconst exact = request.data.ocs.data.exact\n\t\t\tdata.exact = [] // removing exact from general results\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\t\t\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tconst exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\t\t\tconst suggestions = this.filterOutExistingShares(rawSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\t\t\t// lookup clickable entry\n\t\t\t// show if enabled and not already requested\n\t\t\tconst lookupEntry = []\n\t\t\tif (data.lookupEnabled && !lookup) {\n\t\t\t\tlookupEntry.push({\n\t\t\t\t\tid: 'global-lookup',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tdisplayName: t('files_sharing', 'Search globally'),\n\t\t\t\t\tlookup: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// if there is a condition specified, filter it\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\tconst allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)\n\n\t\t\t// Count occurrences of display names in order to provide a distinguishable description if needed\n\t\t\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\t\t\tif (!result.displayName) {\n\t\t\t\t\treturn nameCounts\n\t\t\t\t}\n\t\t\t\tif (!nameCounts[result.displayName]) {\n\t\t\t\t\tnameCounts[result.displayName] = 0\n\t\t\t\t}\n\t\t\t\tnameCounts[result.displayName]++\n\t\t\t\treturn nameCounts\n\t\t\t}, {})\n\n\t\t\tthis.suggestions = allSuggestions.map(item => {\n\t\t\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\t\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t\t\t}\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('suggestions', this.suggestions)\n\t\t},\n\n\t\t/**\n\t\t * Debounce getSuggestions\n\t\t *\n\t\t * @param {...*} args the arguments\n\t\t */\n\t\tdebounceGetSuggestions: debounce(function(...args) {\n\t\t\tthis.getSuggestions(...args)\n\t\t}, 300),\n\n\t\t/**\n\t\t * Get the sharing recommendations\n\t\t */\n\t\tasync getRecommendations() {\n\t\t\tthis.loading = true\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching recommendations', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Add external results from the OCA.Sharing.ShareSearch api\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawRecommendations = Object.values(request.data.ocs.data.exact)\n\t\t\t\t.reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tthis.recommendations = this.filterOutExistingShares(rawRecommendations)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t.concat(externalResults)\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('recommendations', this.recommendations)\n\t\t},\n\n\t\t/**\n\t\t * Filter out existing shares from\n\t\t * the provided shares search results\n\t\t *\n\t\t * @param {object[]} shares the array of shares object\n\t\t * @return {object[]}\n\t\t */\n\t\tfilterOutExistingShares(shares) {\n\t\t\treturn shares.reduce((arr, share) => {\n\t\t\t\t// only check proper objects\n\t\t\t\tif (typeof share !== 'object') {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (share.value.shareType === ShareType.User) {\n\t\t\t\t\t\t// filter out current user\n\t\t\t\t\t\tif (share.value.shareWith === getCurrentUser().uid) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// filter out the owner of the share\n\t\t\t\t\t\tif (this.reshare && share.value.shareWith === this.reshare.owner) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// filter out existing mail shares\n\t\t\t\t\tif (share.value.shareType === ShareType.Email) {\n\t\t\t\t\t\tconst emails = this.linkShares.map(elem => elem.shareWith)\n\t\t\t\t\t\tif (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // filter out existing shares\n\t\t\t\t\t\t// creating an object of uid => type\n\t\t\t\t\t\tconst sharesObj = this.shares.reduce((obj, elem) => {\n\t\t\t\t\t\t\tobj[elem.shareWith] = elem.type\n\t\t\t\t\t\t\treturn obj\n\t\t\t\t\t\t}, {})\n\n\t\t\t\t\t\t// if shareWith is the same and the share type too, ignore it\n\t\t\t\t\t\tconst key = share.value.shareWith.trim()\n\t\t\t\t\t\tif (key in sharesObj\n\t\t\t\t\t\t\t&& sharesObj[key] === share.value.shareType) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ALL GOOD\n\t\t\t\t\t// let's add the suggestion\n\t\t\t\t\tarr.push(share)\n\t\t\t\t} catch {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\treturn arr\n\t\t\t}, [])\n\t\t},\n\n\t\t/**\n\t\t * Get the icon based on the share type\n\t\t *\n\t\t * @param {number} type the share type\n\t\t * @return {string} the icon class\n\t\t */\n\t\tshareTypeToIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Guest:\n\t\t\t\t// default is a user, other icons are here to differentiate\n\t\t\t\t// themselves from it, so let's not display the user icon\n\t\t\t\t// case ShareType.Remote:\n\t\t\t\t// case ShareType.User:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Guest'),\n\t\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-group',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Group'),\n\t\t\t\t}\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Email'),\n\t\t\t\t}\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-teams',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Team'),\n\t\t\t\t}\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-room',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Talk conversation'),\n\t\t\t\t}\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-deck',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Deck board'),\n\t\t\t\t}\n\t\t\tcase ShareType.Sciencemesh:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-sciencemesh',\n\t\t\t\t\ticonTitle: t('files_sharing', 'ScienceMesh'),\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Format shares for the multiselect options\n\t\t *\n\t\t * @param {object} result select entry item\n\t\t * @return {object}\n\t\t */\n\t\tformatForMultiselect(result) {\n\t\t\tlet subname\n\t\t\tif (result.value.shareType === ShareType.User && this.config.shouldAlwaysShowUnique) {\n\t\t\t\tsubname = result.shareWithDisplayNameUnique ?? ''\n\t\t\t} else if ((result.value.shareType === ShareType.Remote\n\t\t\t\t\t|| result.value.shareType === ShareType.RemoteGroup\n\t\t\t) && result.value.server) {\n\t\t\t\tsubname = t('files_sharing', 'on {server}', { server: result.value.server })\n\t\t\t} else if (result.value.shareType === ShareType.Email) {\n\t\t\t\tsubname = result.value.shareWith\n\t\t\t} else {\n\t\t\t\tsubname = result.shareWithDescription ?? ''\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tshareWith: result.value.shareWith,\n\t\t\t\tshareType: result.value.shareType,\n\t\t\t\tuser: result.uuid || result.value.shareWith,\n\t\t\t\tisNoUser: result.value.shareType !== ShareType.User,\n\t\t\t\tdisplayName: result.name || result.label,\n\t\t\t\tsubname,\n\t\t\t\tshareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n\t\t\t\t...this.shareTypeToIcon(result.value.shareType),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for=\"sharing-search-input\"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\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!./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=060f147f\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=060f147f&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shares.length)?_c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}],null,false,1184892072)},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport Config from '../services/ConfigService.ts';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param {boolean} verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n console.info('Error generating password from password_policy', error);\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n self.crypto.getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (path) => {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport { emit } from '@nextcloud/event-bus'\n\nimport PQueue from 'p-queue'\nimport debounce from 'debounce'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesRequests from './ShareRequests.js'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\treturn !bundledPermissions.includes(this.share.permissions)\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.share.password = await GeneratePassword(true)\n\t\t\t\t\tthis.$set(this.share, 'newPassword', this.share.password)\n\t\t\t\t} else {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tconsole.debug('Share deleted', this.share.id)\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch (error) {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array<string>} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tpropertyNames.forEach(name => {\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.indexOf('password') >= 0) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tthis.$delete(this.errors, propertyNames[0])\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tthis.onSyncError(propertyNames[0], message)\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tconsole.debug('Updated local share', this.share)\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\tcase 'expireDate':\n\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\tcase 'hideDownload':\n\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\tcase 'label':\n\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\tcase 'note':\n\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\tcase 'password':\n\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\tcase 'permissions':\n\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\tdefault:\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\tcase 'password':\n\t\t\tcase 'pending':\n\t\t\tcase 'expireDate':\n\t\t\tcase 'label':\n\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\tif (propertyEl) {\n\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t}\n\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t// Restore previous state\n\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.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!./SharingEntryInherited.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<SharingEntrySimple :key=\"share.id\"\n\t\tclass=\"sharing-entry__inherited\"\n\t\t:title=\"share.shareWithDisplayName\">\n\t\t<template #avatar>\n\t\t\t<NcAvatar :user=\"share.shareWith\"\n\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t</template>\n\t\t<NcActionText icon=\"icon-user\">\n\t\t\t{{ t('files_sharing', 'Added by {initiator}', { initiator: share.ownerDisplayName }) }}\n\t\t</NcActionText>\n\t\t<NcActionLink v-if=\"share.viaPath && share.viaFileid\"\n\t\t\ticon=\"icon-folder\"\n\t\t\t:href=\"viaFileTargetUrl\">\n\t\t\t{{ t('files_sharing', 'Via “{folder}”', {folder: viaFolderName} ) }}\n\t\t</NcActionLink>\n\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\ticon=\"icon-close\"\n\t\t\t@click.prevent=\"onDelete\">\n\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t</NcActionButton>\n\t</SharingEntrySimple>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { basename } from '@nextcloud/paths'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcAvatar,\n\t\tSharingEntrySimple,\n\t},\n\n\tmixins: [SharesMixin],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tviaFileTargetUrl() {\n\t\t\treturn generateUrl('/f/{fileid}', {\n\t\t\t\tfileid: this.share.viaFileid,\n\t\t\t})\n\t\t},\n\n\t\tviaFolderName() {\n\t\t\treturn basename(this.share.viaPath)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\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!./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=fe8ed59e&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&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 \"fe8ed59e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', {folder: _vm.viaFolderName} ))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],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!./SharingInherited.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!./SharingInherited.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"shares.length\" id=\"sharing-inherited-shares\">\n\t\t<!-- Main collapsible entry -->\n\t\t<SharingEntrySimple class=\"sharing-entry__inherited\"\n\t\t\t:title=\"mainTitle\"\n\t\t\t:subtitle=\"subTitle\"\n\t\t\t:aria-expanded=\"showInheritedShares\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-shared icon-more-white\" />\n\t\t\t</template>\n\t\t\t<NcActionButton :icon=\"showInheritedSharesIcon\"\n\t\t\t\t:aria-label=\"toggleTooltip\"\n\t\t\t\t:title=\"toggleTooltip\"\n\t\t\t\t@click.prevent.stop=\"toggleInheritedShares\" />\n\t\t</SharingEntrySimple>\n\n\t\t<!-- Inherited shares list -->\n\t\t<SharingEntryInherited v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</ul>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntryInherited,\n\t\tSharingEntrySimple,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tshowInheritedShares: false,\n\t\t\tshares: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowInheritedSharesIcon() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\treturn 'icon-triangle-n'\n\t\t\t}\n\t\t\treturn 'icon-triangle-s'\n\t\t},\n\t\tmainTitle() {\n\t\t\treturn t('files_sharing', 'Others with access')\n\t\t},\n\t\tsubTitle() {\n\t\t\treturn (this.showInheritedShares && this.shares.length === 0)\n\t\t\t\t? t('files_sharing', 'No other accounts with access found')\n\t\t\t\t: ''\n\t\t},\n\t\ttoggleTooltip() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t\t\t? t('files_sharing', 'Toggle list of others with access to this directory')\n\t\t\t\t: t('files_sharing', 'Toggle list of others with access to this file')\n\t\t},\n\t\tfullPath() {\n\t\t\tconst path = `${this.fileInfo.path}/${this.fileInfo.name}`\n\t\t\treturn path.replace('//', '/')\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo() {\n\t\t\tthis.resetState()\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Toggle the list view and fetch/reset the state\n\t\t */\n\t\ttoggleInheritedShares() {\n\t\t\tthis.showInheritedShares = !this.showInheritedShares\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\tthis.fetchInheritedShares()\n\t\t\t} else {\n\t\t\t\tthis.resetState()\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Fetch the Inherited Shares array\n\t\t */\n\t\tasync fetchInheritedShares() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { path: this.fullPath })\n\t\t\t\tconst shares = await axios.get(url)\n\t\t\t\tthis.shares = shares.data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\t\t\t\tconsole.info(this.shares)\n\t\t\t\tthis.loaded = true\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { type: 'error' })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Reset current component state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loaded = false\n\t\t\tthis.loading = false\n\t\t\tthis.showInheritedShares = false\n\t\t\tthis.shares = []\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\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!./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=a6cc72e6&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=a6cc72e6&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 \"a6cc72e6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e(),_vm._v(\" \"),(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tune-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TuneIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarBlankIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./CalendarBlank.vue?vue&type=template&id=41fe7db9\"\nimport script from \"./CalendarBlank.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlank.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon qrcode-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"QrcodeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon exclamation-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ExclamationIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon lock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon check-bold-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckBoldIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon triangle-small-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8 9H16L12 16\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TriangleSmallDownIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=caa55e94\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-upload-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcActions ref=\"quickShareActions\"\n\t\tclass=\"share-select\"\n\t\t:menu-name=\"selectedOption\"\n\t\t:aria-label=\"ariaLabel\"\n\t\ttype=\"tertiary-no-background\"\n\t\t:disabled=\"!share.canEdit\"\n\t\tforce-name>\n\t\t<template #icon>\n\t\t\t<DropdownIcon :size=\"15\" />\n\t\t</template>\n\t\t<NcActionButton v-for=\"option in options\"\n\t\t\t:key=\"option.label\"\n\t\t\ttype=\"radio\"\n\t\t\t:model-value=\"option.label === selectedOption\"\n\t\t\tclose-after-click\n\t\t\t@click=\"selectOption(option.label)\">\n\t\t\t<template #icon>\n\t\t\t\t<component :is=\"option.icon\" />\n\t\t\t</template>\n\t\t\t{{ option.label }}\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue'\nimport IconPencil from 'vue-material-design-icons/Pencil.vue'\nimport IconFileUpload from 'vue-material-design-icons/FileUpload.vue'\nimport IconTune from 'vue-material-design-icons/Tune.vue'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n\tATOMIC_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingEntryQuickShareSelect',\n\n\tcomponents: {\n\t\tDropdownIcon,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['open-sharing-details'],\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('files_sharing', 'Quick share options, the current selected is \"{selectedOption}\"', { selectedOption: this.selectedOption })\n\t\t},\n\t\tcanViewText() {\n\t\t\treturn t('files_sharing', 'View only')\n\t\t},\n\t\tcanEditText() {\n\t\t\treturn t('files_sharing', 'Can edit')\n\t\t},\n\t\tfileDropText() {\n\t\t\treturn t('files_sharing', 'File request')\n\t\t},\n\t\tcustomPermissionsText() {\n\t\t\treturn t('files_sharing', 'Custom permissions')\n\t\t},\n\t\tpreSelectedOption() {\n\t\t\t// We remove the share permission for the comparison as it is not relevant for bundled permissions.\n\t\t\tif ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n\t\t\t\treturn this.canViewText\n\t\t\t} else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n\t\t\t\treturn this.canEditText\n\t\t\t} else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n\t\t\t\treturn this.fileDropText\n\t\t\t}\n\n\t\t\treturn this.customPermissionsText\n\n\t\t},\n\t\toptions() {\n\t\t\tconst options = [{\n\t\t\t\tlabel: this.canViewText,\n\t\t\t\ticon: IconEyeOutline,\n\t\t\t}, {\n\t\t\t\tlabel: this.canEditText,\n\t\t\t\ticon: IconPencil,\n\t\t\t}]\n\t\t\tif (this.supportsFileDrop) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: this.fileDropText,\n\t\t\t\t\ticon: IconFileUpload,\n\t\t\t\t})\n\t\t\t}\n\t\t\toptions.push({\n\t\t\t\tlabel: this.customPermissionsText,\n\t\t\t\ticon: IconTune,\n\t\t\t})\n\n\t\t\treturn options\n\t\t},\n\t\tsupportsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tconst shareType = this.share.type ?? this.share.shareType\n\t\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tdropDownPermissionValue() {\n\t\t\tswitch (this.selectedOption) {\n\t\t\tcase this.canEditText:\n\t\t\t\treturn this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\tcase this.fileDropText:\n\t\t\t\treturn BUNDLED_PERMISSIONS.FILE_DROP\n\t\t\tcase this.customPermissionsText:\n\t\t\t\treturn 'custom'\n\t\t\tcase this.canViewText:\n\t\t\tdefault:\n\t\t\t\treturn BUNDLED_PERMISSIONS.READ_ONLY\n\t\t\t}\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.selectedOption = this.preSelectedOption\n\t},\n\tmounted() {\n\t\tsubscribe('update:share', (share) => {\n\t\t\tif (share.id === this.share.id) {\n\t\t\t\tthis.share.permissions = share.permissions\n\t\t\t\tthis.selectedOption = this.preSelectedOption\n\t\t\t}\n\t\t})\n\t},\n\tunmounted() {\n\t\tunsubscribe('update:share')\n\t},\n\tmethods: {\n\t\tselectOption(optionLabel) {\n\t\t\tthis.selectedOption = optionLabel\n\t\t\tif (optionLabel === this.customPermissionsText) {\n\t\t\t\tthis.$emit('open-sharing-details')\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = this.dropDownPermissionValue\n\t\t\t\tthis.queueUpdate('permissions')\n\t\t\t\t// TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick\n\t\t\t\tthis.$refs.quickShareActions.$refs.menuButton.$el.focus()\n\t\t\t}\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\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!./SharingEntryQuickShareSelect.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!./SharingEntryQuickShareSelect.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!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=2aa230f1&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=2aa230f1&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 \"2aa230f1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"type\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: ') + new Date(_vm.expiryTime).toLocaleString()},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon clock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ClockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Clock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Clock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Clock.vue?vue&type=template&id=539578bc\"\nimport script from \"./Clock.vue?vue&type=script&lang=js\"\nexport * from \"./Clock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.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!./ShareExpiryTime.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"share-expiry-time\">\n\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t<template #trigger>\n\t\t\t\t<NcButton v-if=\"expiryTime\"\n\t\t\t\t\tclass=\"hint-icon\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:aria-label=\"t('files_sharing', 'Share expiration: ') + new Date(expiryTime).toLocaleString()\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ClockIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</template>\n\t\t\t<h3 class=\"hint-heading\">\n\t\t\t\t{{ t('files_sharing', 'Share Expiration') }}\n\t\t\t</h3>\n\t\t\t<p v-if=\"expiryTime\" class=\"hint-body\">\n\t\t\t\t<NcDateTime :timestamp=\"expiryTime\"\n\t\t\t\t\t:format=\"timeFormat\"\n\t\t\t\t\t:relative-time=\"false\" /> (<NcDateTime :timestamp=\"expiryTime\" />)\n\t\t\t</p>\n\t\t</NcPopover>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\nimport NcDateTime from '@nextcloud/vue/components/NcDateTime'\nimport ClockIcon from 'vue-material-design-icons/Clock.vue'\n\nexport default {\n\tname: 'ShareExpiryTime',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcPopover,\n\t\tNcDateTime,\n\t\tClockIcon,\n\t},\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\texpiryTime() {\n\t\t\treturn this.share?.expireDate ? new Date(this.share.expireDate).getTime() : null\n\t\t},\n\t\ttimeFormat() {\n\t\t\treturn { dateStyle: 'full', timeStyle: 'short' }\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\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!./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=66d8c844&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=66d8c844&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66d8c844\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.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!./ExternalShareAction.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Component :is=\"data.is\"\n\t\tv-bind=\"data\"\n\t\tv-on=\"action.handlers\">\n\t\t{{ data.text }}\n\t</Component>\n</template>\n\n<script>\nimport Share from '../models/Share.ts'\n\nexport default {\n\tname: 'ExternalShareAction',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdata() {\n\t\t\treturn this.action.data(this)\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=2812a40a\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.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(_vm.data.is,_vm._g(_vm._b({tag:\"Component\"},'Component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li :class=\"{ 'sharing-entry--share': share }\"\n\t\tclass=\"sharing-entry sharing-entry__link\">\n\t\t<NcAvatar :is-no-user=\"true\"\n\t\t\t:icon-class=\"isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'\"\n\t\t\tclass=\"sharing-entry__avatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<div class=\"sharing-entry__desc\">\n\t\t\t\t<span class=\"sharing-entry__title\" :title=\"title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</span>\n\t\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t\t{{ subtitle }}\n\t\t\t\t</p>\n\t\t\t\t<SharingEntryQuickShareSelect v-if=\"share && share.permissions !== undefined\"\n\t\t\t\t\t:share=\"share\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"sharing-entry__actions\">\n\t\t\t\t<ShareExpiryTime v-if=\"share && share.expireDate\" :share=\"share\" />\n\n\t\t\t\t<!-- clipboard -->\n\t\t\t\t<div>\n\t\t\t\t\t<NcActions v-if=\"share && (!isEmailShareType || isFileRequest) && share.token\" ref=\"copyButton\" class=\"sharing-entry__copy\">\n\t\t\t\t\t\t<NcActionButton :aria-label=\"copyLinkTooltip\"\n\t\t\t\t\t\t\t:title=\"copyLinkTooltip\"\n\t\t\t\t\t\t\t:href=\"shareLink\"\n\t\t\t\t\t\t\t@click.prevent=\"copyLink\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t</NcActions>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- pending actions -->\n\t\t<NcActions v-if=\"!pending && pendingDataIsMissing\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onCancel\">\n\t\t\t<!-- pending data menu -->\n\t\t\t<NcActionText v-if=\"errors.pending\"\n\t\t\t\tclass=\"error\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ErrorIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ errors.pending }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionText v-else icon=\"icon-info\">\n\t\t\t\t{{ t('files_sharing', 'Please enter the following required information before creating the share') }}\n\t\t\t</NcActionText>\n\n\t\t\t<!-- password -->\n\t\t\t<NcActionCheckbox v-if=\"pendingPassword\"\n\t\t\t\t:checked.sync=\"isPasswordProtected\"\n\t\t\t\t:disabled=\"config.enforcePasswordForPublicLink || saving\"\n\t\t\t\tclass=\"share-link-password-checkbox\"\n\t\t\t\t@uncheck=\"onPasswordDisable\">\n\t\t\t\t{{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<NcActionInput v-if=\"pendingEnforcedPassword || share.password\"\n\t\t\t\tclass=\"share-link-password\"\n\t\t\t\t:label=\"t('files_sharing', 'Enter a password')\"\n\t\t\t\t:value.sync=\"share.password\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:required=\"config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink\"\n\t\t\t\t:minlength=\"isPasswordPolicyEnabled && config.passwordPolicy.minLength\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t@submit=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<LockIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionCheckbox v-if=\"pendingDefaultExpirationDate\"\n\t\t\t\t:checked.sync=\"defaultExpirationDateEnabled\"\n\t\t\t\t:disabled=\"pendingEnforcedExpirationDate || saving\"\n\t\t\t\tclass=\"share-link-expiration-date-checkbox\"\n\t\t\t\t@update:model-value=\"onExpirationDateToggleUpdate\">\n\t\t\t\t{{ config.isDefaultExpireDateEnforced ? t('files_sharing', 'Enable link expiration (enforced)') : t('files_sharing', 'Enable link expiration') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<!-- expiration date -->\n\t\t\t<NcActionInput v-if=\"(pendingDefaultExpirationDate || pendingEnforcedExpirationDate) && defaultExpirationDateEnabled\"\n\t\t\t\tdata-cy-files-sharing-expiration-date-input\n\t\t\t\tclass=\"share-link-expire-date\"\n\t\t\t\t:label=\"pendingEnforcedExpirationDate ? t('files_sharing', 'Enter expiration date (enforced)') : t('files_sharing', 'Enter expiration date')\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:is-native-picker=\"true\"\n\t\t\t\t:hide-label=\"true\"\n\t\t\t\t:value=\"new Date(share.expireDate)\"\n\t\t\t\ttype=\"date\"\n\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t@update:model-value=\"onExpirationChange\"\n\t\t\t\t@change=\"expirationDateChanged\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconCalendarBlank :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionButton @click.prevent.stop=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Create share') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton @click.prevent.stop=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<!-- actions -->\n\t\t<NcActions v-else-if=\"!loading\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onMenuClose\">\n\t\t\t<template v-if=\"share\">\n\t\t\t\t<template v-if=\"share.canEdit && canReshare\">\n\t\t\t\t\t<NcActionButton :disabled=\"saving\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent=\"openSharingDetails\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Tune :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_sharing', 'Customize link') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\n\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t@click.prevent=\"showQRCode = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconQr :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Generate QR code') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionSeparator />\n\n\t\t\t\t<!-- external actions -->\n\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:share=\"share\" />\n\n\t\t\t\t<!-- external legacy sharing via url (social...) -->\n\t\t\t\t<NcActionLink v-for=\"({ icon, url, name }, actionIndex) in externalLegacyLinkActions\"\n\t\t\t\t\t:key=\"actionIndex\"\n\t\t\t\t\t:href=\"url(shareLink)\"\n\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\ttarget=\"_blank\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</NcActionLink>\n\n\t\t\t\t<NcActionButton v-if=\"!isEmailShareType && canReshare\"\n\t\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t\t@click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<PlusIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Add another link') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\t\t\t:disabled=\"saving\"\n\t\t\t\t\t@click.prevent=\"onDelete\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\n\t\t\t<!-- Create new share -->\n\t\t\t<NcActionButton v-else-if=\"canReshare\"\n\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t:title=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:aria-label=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:icon=\"loading ? 'icon-loading-small' : 'icon-add'\"\n\t\t\t\t@click.prevent.stop=\"onNewLinkShare\" />\n\t\t</NcActions>\n\n\t\t<!-- loading indicator to replace the menu -->\n\t\t<div v-else class=\"icon-loading-small sharing-entry__loading\" />\n\n\t\t<!-- Modal to open whenever we have a QR code -->\n\t\t<NcDialog v-if=\"showQRCode\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showQRCode\"\n\t\t\t:name=\"title\"\n\t\t\t:close-on-click-outside=\"true\"\n\t\t\t@close=\"showQRCode = false\">\n\t\t\t<div class=\"qr-code-dialog\">\n\t\t\t\t<VueQrcode tag=\"img\"\n\t\t\t\t\t:value=\"shareLink\"\n\t\t\t\t\tclass=\"qr-code-dialog__img\" />\n\t\t\t</div>\n\t\t</NcDialog>\n\t</li>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { generateUrl, getBaseUrl } from '@nextcloud/router'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport moment from '@nextcloud/moment'\n\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'\nimport NcActionInput from '@nextcloud/vue/components/NcActionInput'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\nimport NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\n\nimport Tune from 'vue-material-design-icons/Tune.vue'\nimport IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue'\nimport IconQr from 'vue-material-design-icons/Qrcode.vue'\nimport ErrorIcon from 'vue-material-design-icons/Exclamation.vue'\nimport LockIcon from 'vue-material-design-icons/Lock.vue'\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport PlusIcon from 'vue-material-design-icons/Plus.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\nimport ShareExpiryTime from './ShareExpiryTime.vue'\n\nimport ExternalShareAction from './ExternalShareAction.vue'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default {\n\tname: 'SharingEntryLink',\n\n\tcomponents: {\n\t\tExternalShareAction,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionCheckbox,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcActionSeparator,\n\t\tNcAvatar,\n\t\tNcDialog,\n\t\tVueQrcode,\n\t\tTune,\n\t\tIconCalendarBlank,\n\t\tIconQr,\n\t\tErrorIcon,\n\t\tLockIcon,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t\tCloseIcon,\n\t\tPlusIcon,\n\t\tSharingEntryQuickShareSelect,\n\t\tShareExpiryTime,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshareCreationComplete: false,\n\t\t\tcopySuccess: true,\n\t\t\tcopied: false,\n\t\t\tdefaultExpirationDateEnabled: false,\n\n\t\t\t// Are we waiting for password/expiration date\n\t\t\tpending: false,\n\n\t\t\tExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t\tlogger: getLoggerBuilder()\n\t\t\t\t.setApp('files_sharing')\n\t\t\t\t.detectUser()\n\t\t\t\t.build(),\n\n\t\t\t// tracks whether modal should be opened or not\n\t\t\tshowQRCode: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Link share label\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttitle() {\n\t\t\t// if we have a valid existing share (not pending)\n\t\t\tif (this.share && this.share.id) {\n\t\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', '{shareWith} by {initiator}', {\n\t\t\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Shared via link by {initiator}', {\n\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.share.label && this.share.label.trim() !== '') {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\tif (this.isFileRequest) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'File request ({label})', {\n\t\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn t('files_sharing', 'Mail share ({label})', {\n\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share link ({label})', {\n\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\tif (!this.share.shareWith || this.share.shareWith.trim() === '') {\n\t\t\t\t\t\treturn this.isFileRequest\n\t\t\t\t\t\t\t? t('files_sharing', 'File request')\n\t\t\t\t\t\t\t: t('files_sharing', 'Mail share')\n\t\t\t\t\t}\n\t\t\t\t\treturn this.share.shareWith\n\t\t\t\t}\n\n\t\t\t\tif (this.index === null) {\n\t\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.index >= 1) {\n\t\t\t\treturn t('files_sharing', 'Share link ({index})', { index: this.index })\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Create public link')\n\t\t},\n\n\t\t/**\n\t\t * Show the email on a second line if a label is set for mail shares\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\tif (this.isEmailShareType\n\t\t\t\t&& this.title !== this.share.shareWith) {\n\t\t\t\treturn this.share.shareWith\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (this.share.passwordExpirationTime === null) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Pending data.\n\t\t * If the share still doesn't have an id, it is not synced\n\t\t * Therefore this is still not valid and requires user input\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tpendingDataIsMissing() {\n\t\t\treturn this.pendingPassword || this.pendingEnforcedPassword || this.pendingDefaultExpirationDate || this.pendingEnforcedExpirationDate\n\t\t},\n\t\tpendingPassword() {\n\t\t\treturn this.config.enableLinkPasswordByDefault && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedPassword() {\n\t\t\treturn this.config.enforcePasswordForPublicLink && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedExpirationDate() {\n\t\t\treturn this.config.isDefaultExpireDateEnforced && this.isPendingShare\n\t\t},\n\t\tpendingDefaultExpirationDate() {\n\t\t\treturn (this.config.defaultExpirationDate instanceof Date || !isNaN(new Date(this.config.defaultExpirationDate).getTime())) && this.isPendingShare\n\t\t},\n\t\tisPendingShare() {\n\t\t\treturn !!(this.share && !this.share.id)\n\t\t},\n\t\tsharePolicyHasEnforcedProperties() {\n\t\t\treturn this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced\n\t\t},\n\n\t\tenforcedPropertiesMissing() {\n\t\t\t// Ensure share exist and the share policy has required properties\n\t\t\tif (!this.sharePolicyHasEnforcedProperties) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!this.share) {\n\t\t\t\t// if no share, we can't tell if properties are missing or not so we assume properties are missing\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// If share has ID, then this is an incoming link share created from the existing link share\n\t\t\t// Hence assume required properties\n\t\t\tif (this.share.id) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Check if either password or expiration date is missing and enforced\n\t\t\tconst isPasswordMissing = this.config.enforcePasswordForPublicLink && !this.share.password\n\t\t\tconst isExpireDateMissing = this.config.isDefaultExpireDateEnforced && !this.share.expireDate\n\n\t\t\treturn isPasswordMissing || isExpireDateMissing\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Return the public share link\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshareLink() {\n\t\t\treturn generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for actions button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactionsTooltip() {\n\t\t\treturn t('files_sharing', 'Actions for \"{title}\"', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for copy button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy public link of \"{title}\" to clipboard', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * External additionnai actions for the menu\n\t\t *\n\t\t * @deprecated use OCA.Sharing.ExternalShareActions\n\t\t * @return {Array}\n\t\t */\n\t\texternalLegacyLinkActions() {\n\t\t\treturn this.ExternalLegacyLinkActions.actions\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && !action.advanced\n\t\t\t// filter only the registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\n\t\tisPasswordPolicyEnabled() {\n\t\t\treturn typeof this.config.passwordPolicy === 'object'\n\t\t},\n\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.scope === 'permissions' && shareAttribute.key === 'download' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\n\t\tisFileRequest() {\n\t\t\treturn this.share.isFileRequest\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.defaultExpirationDateEnabled = this.config.defaultExpirationDate instanceof Date\n\t\tif (this.share && this.isNewShare) {\n\t\t\tthis.share.expireDate = this.defaultExpirationDateEnabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if the share requires review\n\t\t *\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t * @return {boolean}\n\t\t */\n\t\tshareRequiresReview(shareReviewComplete) {\n\t\t\t// If a user clicks 'Create share' it means they have reviewed the share\n\t\t\tif (shareReviewComplete) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.defaultExpirationDateEnabled || this.config.enableLinkPasswordByDefault\n\t\t},\n\t\t/**\n\t\t * Create a new share link and append it to the list\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t */\n\t\tasync onNewLinkShare(shareReviewComplete = false) {\n\t\t\tthis.logger.debug('onNewLinkShare called (with this.share)', this.share)\n\t\t\t// do not run again if already loading\n\t\t\tif (this.loading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst shareDefaults = {\n\t\t\t\tshare_type: ShareType.Link,\n\t\t\t}\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\t// default is empty string if not set\n\t\t\t\t// expiration is the share object key, not expireDate\n\t\t\t\tshareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)\n\t\t\t}\n\n\t\t\tthis.logger.debug('Missing required properties?', this.enforcedPropertiesMissing)\n\t\t\t// Do not push yet if we need a password or an expiration date: show pending menu\n\t\t\t// A share would require a review for example is default expiration date is set but not enforced, this allows\n\t\t\t// the user to review the share and remove the expiration date if they don't want it\n\t\t\tif ((this.sharePolicyHasEnforcedProperties && this.enforcedPropertiesMissing) || this.shareRequiresReview(shareReviewComplete === true)) {\n\t\t\t\tthis.pending = true\n\t\t\t\tthis.shareCreationComplete = false\n\n\t\t\t\tthis.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')\n\n\t\t\t\t// ELSE, show the pending popovermenu\n\t\t\t\t// if password default or enforced, pre-fill with random one\n\t\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\tshareDefaults.password = await GeneratePassword(true)\n\t\t\t\t}\n\n\t\t\t\t// create share & close menu\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t})\n\n\t\t\t\t// open the menu on the\n\t\t\t\t// freshly created share component\n\t\t\t\tthis.open = false\n\t\t\t\tthis.pending = false\n\t\t\t\tcomponent.open = true\n\n\t\t\t\t// Nothing is enforced, creating share directly\n\t\t\t} else {\n\n\t\t\t\t// if a share already exists, pushing it\n\t\t\t\tif (this.share && !this.share.id) {\n\t\t\t\t\t// if the share is valid, create it on the server\n\t\t\t\t\tif (this.checkShare(this.share)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.logger.info('Sending existing share to server', this.share)\n\t\t\t\t\t\t\tawait this.pushNewLinkShare(this.share, true)\n\t\t\t\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\t\t\t\tthis.logger.info('Share created on server', this.share)\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthis.pending = false\n\t\t\t\t\t\t\tthis.logger.error('Error creating share', e)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.open = true\n\t\t\t\t\t\tshowError(t('files_sharing', 'Error, please enter proper password and/or expiration date'))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tawait this.pushNewLinkShare(share)\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Push a new link share to the server\n\t\t * And update or append to the list\n\t\t * accordingly\n\t\t *\n\t\t * @param {Share} share the new share\n\t\t * @param {boolean} [update] do we update the current share ?\n\t\t */\n\t\tasync pushNewLinkShare(share, update) {\n\t\t\ttry {\n\t\t\t\t// do nothing if we're already pending creation\n\t\t\t\tif (this.loading) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.errors = {}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: ShareType.Link,\n\t\t\t\t\tpassword: share.password,\n\t\t\t\t\texpireDate: share.expireDate ?? '',\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t\t// we do not allow setting the publicUpload\n\t\t\t\t\t// before the share creation.\n\t\t\t\t\t// Todo: We also need to fix the createShare method in\n\t\t\t\t\t// lib/Controller/ShareAPIController.php to allow file requests\n\t\t\t\t\t// (currently not supported on create, only update)\n\t\t\t\t}\n\n\t\t\t\tconsole.debug('Creating link share with options', options)\n\t\t\t\tconst newShare = await this.createShare(options)\n\n\t\t\t\tthis.open = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\tconsole.debug('Link share created', newShare)\n\t\t\t\t// if share already exists, copy link directly on next tick\n\t\t\t\tlet component\n\t\t\t\tif (update) {\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('update:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// adding new share to the array and copying link to clipboard\n\t\t\t\t\t// using promise so that we can copy link in the same click function\n\t\t\t\t\t// and avoid firefox copy permissions issue\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\n\t\t\t\t// Execute the copy link method\n\t\t\t\t// freshly created share component\n\t\t\t\t// ! somehow does not works on firefox !\n\t\t\t\tif (!this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\t// Only copy the link when the password was not forced,\n\t\t\t\t\t// otherwise the user needs to copy/paste the password before finishing the share.\n\t\t\t\t\tcomponent.copyLink()\n\t\t\t\t}\n\t\t\t\tshowSuccess(t('files_sharing', 'Link share created'))\n\n\t\t\t} catch (data) {\n\t\t\t\tconst message = data?.response?.data?.ocs?.meta?.message\n\t\t\t\tif (!message) {\n\t\t\t\t\tshowError(t('files_sharing', 'Error while creating the share'))\n\t\t\t\t\tconsole.error(data)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (message.match(/password/i)) {\n\t\t\t\t\tthis.onSyncError('password', message)\n\t\t\t\t} else if (message.match(/date/i)) {\n\t\t\t\t\tthis.onSyncError('expireDate', message)\n\t\t\t\t} else {\n\t\t\t\t\tthis.onSyncError('pending', message)\n\t\t\t\t}\n\t\t\t\tthrow data\n\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.shareLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\t// focus and show the tooltip\n\t\t\t\tthis.$refs.copyButton.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\n\t\t/**\n\t\t * Uncheck password protection\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so we\n\t\t * cannot ensure data is up-to-date\n\t\t */\n\t\tonPasswordDisable() {\n\t\t\tthis.share.password = ''\n\n\t\t\t// reset password state after sync\n\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t// only update if valid share.\n\t\t\tif (this.share.id) {\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Menu have been closed or password has been submitted.\n\t\t * The only property that does not get\n\t\t * synced automatically is the password\n\t\t * So let's check if we have an unsaved\n\t\t * password.\n\t\t * expireDate is saved on datepicker pick\n\t\t * or close.\n\t\t */\n\t\tonPasswordSubmit() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onPasswordSubmit()\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\n\t\t/**\n\t\t * @param enabled True if expiration is enabled\n\t\t */\n\t\tonExpirationDateToggleUpdate(enabled) {\n\t\t\tthis.share.expireDate = enabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t},\n\n\t\texpirationDateChanged(event) {\n\t\t\tconst value = event?.target?.value\n\t\t\tconst isValid = !!value && !isNaN(new Date(value).getTime())\n\t\t\tthis.defaultExpirationDateEnabled = isValid\n\t\t},\n\n\t\t/**\n\t\t * Cancel the share creation\n\t\t * Used in the pending popover\n\t\t */\n\t\tonCancel() {\n\t\t\t// this.share already exists at this point,\n\t\t\t// but is incomplete as not pushed to server\n\t\t\t// YET. We can safely delete the share :)\n\t\t\tif (!this.shareCreationComplete) {\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\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!./SharingEntryLink.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!./SharingEntryLink.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!./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=4d06a90a&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=4d06a90a&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 \"4d06a90a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.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!./SharingLinkList.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"canLinkShare\"\n\t\t:aria-label=\"t('files_sharing', 'Link shares')\"\n\t\tclass=\"sharing-link-list\">\n\t\t<!-- If no link shares, show the add link default entry -->\n\t\t<SharingEntryLink v-if=\"!hasLinkShares && canReshare\"\n\t\t\t:can-reshare=\"canReshare\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t@add:share=\"addShare\" />\n\n\t\t<!-- Else we display the list -->\n\t\t<template v-if=\"hasShares\">\n\t\t\t<!-- using shares[index] to work with .sync -->\n\t\t\t<SharingEntryLink v-for=\"(share, index) in shares\"\n\t\t\t\t:key=\"share.id\"\n\t\t\t\t:index=\"shares.length > 1 ? index + 1 : null\"\n\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t:share.sync=\"shares[index]\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@add:share=\"addShare(...arguments)\"\n\t\t\t\t@update:share=\"awaitForShare(...arguments)\"\n\t\t\t\t@remove:share=\"removeShare\"\n\t\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t\t</template>\n\t</ul>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport { t } from '@nextcloud/l10n'\n\nimport Share from '../models/Share.js'\nimport SharingEntryLink from '../components/SharingEntryLink.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingLinkList',\n\n\tcomponents: {\n\t\tSharingEntryLink,\n\t},\n\n\tmixins: [ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcanLinkShare: getCapabilities().files_sharing.public.enabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Do we have link shares?\n\t\t * Using this to still show the `new link share`\n\t\t * button regardless of mail shares\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\thasLinkShares() {\n\t\t\treturn this.shares.filter(share => share.type === ShareType.Link).length > 0\n\t\t},\n\n\t\t/**\n\t\t * Do we have any link or email shares?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasShares() {\n\t\t\treturn this.shares.length > 0\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Add a new share into the link shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} resolve a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve) {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.push(share)\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = this.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkTooltip,\"title\":_vm.copyLinkTooltip,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4269614823)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event},\"uncheck\":_vm.onPasswordDisable}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.share.password)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"value\":_vm.share.password,\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"password\", $event)},\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168)}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"checked\":_vm.defaultExpirationDateEnabled,\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:checked\":function($event){_vm.defaultExpirationDateEnabled=$event},\"update:model-value\":_vm.onExpirationDateToggleUpdate}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyLinkActions),function({ icon, url, name },actionIndex){return _c('NcActionLink',{key:actionIndex,attrs:{\"href\":url(_vm.shareLink),\"icon\":icon,\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('div',{staticClass:\"icon-loading-small sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=5f722665\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.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('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<NcAvatar class=\"sharing-entry__avatar\"\n\t\t\t:is-no-user=\"share.type !== ShareType.User\"\n\t\t\t:user=\"share.shareWith\"\n\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t:menu-position=\"'left'\"\n\t\t\t:url=\"share.shareWithAvatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<component :is=\"share.shareWithLink ? 'a' : 'div'\"\n\t\t\t\t:title=\"tooltip\"\n\t\t\t\t:aria-label=\"tooltip\"\n\t\t\t\t:href=\"share.shareWithLink\"\n\t\t\t\tclass=\"sharing-entry__summary__desc\">\n\t\t\t\t<span>{{ title }}\n\t\t\t\t\t<span v-if=\"!isUnique\" class=\"sharing-entry__summary__desc-unique\"> ({{\n\t\t\t\t\t\tshare.shareWithDisplayNameUnique }})</span>\n\t\t\t\t\t<small v-if=\"hasStatus && share.status.message\">({{ share.status.message }})</small>\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t\t<SharingEntryQuickShareSelect :share=\"share\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t</div>\n\t\t<ShareExpiryTime v-if=\"share && share.expireDate\" :share=\"share\" />\n\t\t<NcButton v-if=\"share.canEdit\"\n\t\t\tclass=\"sharing-entry__action\"\n\t\t\tdata-cy-files-sharing-share-actions\n\t\t\t:aria-label=\"t('files_sharing', 'Open Sharing Details')\"\n\t\t\ttype=\"tertiary\"\n\t\t\t@click=\"openSharingDetails(share)\">\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\n\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport ShareExpiryTime from './ShareExpiryTime.vue'\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntry',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcAvatar,\n\t\tDotsHorizontalIcon,\n\t\tNcSelect,\n\t\tShareExpiryTime,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = this.share.shareWithDisplayName\n\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === ShareType.Remote) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === ShareType.RemoteGroup) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === ShareType.Guest) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\ttitle += ' ' + t('files_sharing', 'by {initiator}', {\n\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn title\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.share.owner !== this.share.uidFileOwner) {\n\t\t\t\tconst data = {\n\t\t\t\t\t// todo: strong or italic?\n\t\t\t\t\t// but the t function escape any html from the data :/\n\t\t\t\t\tuser: this.share.shareWithDisplayName,\n\t\t\t\t\towner: this.share.ownerDisplayName,\n\t\t\t\t}\n\t\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the group {user} by {owner}', data)\n\t\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the conversation {user} by {owner}', data)\n\t\t\t\t}\n\n\t\t\t\treturn t('files_sharing', 'Shared with {user} by {owner}', data)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasStatus() {\n\t\t\tif (this.share.type !== ShareType.User) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (typeof this.share.status === 'object' && !Array.isArray(this.share.status))\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.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!./SharingEntry.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!./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=2dbd45b5&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=2dbd45b5&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 \"2dbd45b5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.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!./SharingList.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul class=\"sharing-sharee-list\" :aria-label=\"t('files_sharing', 'Shares')\">\n\t\t<SharingEntry v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t:is-unique=\"isUnique(share)\"\n\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t</ul>\n</template>\n\n<script>\nimport { t } from '@nextcloud/l10n'\nimport SharingEntry from '../components/SharingEntry.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingList',\n\n\tcomponents: {\n\t\tSharingEntry,\n\t},\n\n\tmixins: [ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tt,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasShares() {\n\t\t\treturn this.shares.length === 0\n\t\t},\n\t\tisUnique() {\n\t\t\treturn (share) => {\n\t\t\t\treturn [...this.shares].filter((item) => {\n\t\t\t\t\treturn share.type === ShareType.User && share.shareWithDisplayName === item.shareWithDisplayName\n\t\t\t\t}).length <= 1\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\" (\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"type\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=5b9a3a03\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.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:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"checked\":_vm.sharingPermission,\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}])},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"checked\":_vm.sharingPermission,\"value\":'custom',\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.expandCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"type\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label'),\"value\":_vm.share.label},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"label\", $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token'),\"value\":_vm.share.token},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"token\", $event)},\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821)}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.isPasswordEnforced},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"value\":_vm.hasUnsavedPassword ? _vm.share.newPassword : '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtectedByTalk},on:{\"update:checked\":[function($event){_vm.isPasswordProtectedByTalk=$event},_vm.onPasswordProtectedByTalkChange]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.hasExpirationDate,\"disabled\":_vm.isExpiryDateEnforced},on:{\"update:checked\":function($event){_vm.hasExpirationDate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload,\"checked\":_vm.share.hideDownload},on:{\"update:checked\":[function($event){return _vm.$set(_vm.share, \"hideDownload\", $event)},function($event){return _vm.queueUpdate('hideDownload')}]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"checked\":_vm.canDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},on:{\"update:checked\":function($event){_vm.canDownload=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.writeNoteToRecipientIsChecked},on:{\"update:checked\":function($event){_vm.writeNoteToRecipientIsChecked=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient'),\"value\":_vm.share.note},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"note\", $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.showInGridView},on:{\"update:checked\":function($event){_vm.showInGridView=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.setCustomPermissions},on:{\"update:checked\":function($event){_vm.setCustomPermissions=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"checked\":_vm.hasRead,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},on:{\"update:checked\":function($event){_vm.hasRead=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"checked\":_vm.canCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},on:{\"update:checked\":function($event){_vm.canCreate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"checked\":_vm.canEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},on:{\"update:checked\":function($event){_vm.canEdit=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"checked\":_vm.canReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},on:{\"update:checked\":function($event){_vm.canReshare=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"checked\":_vm.canDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},on:{\"update:checked\":function($event){_vm.canDelete=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"type\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":16}})]},proxy:true}],null,false,2746485232)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=c013567c\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon email-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EmailIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon share-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ShareCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountCircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon refresh-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RefreshIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.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!./SharingDetailsTab.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"sharingTabDetailsView\">\n\t\t<div class=\"sharingTabDetailsView__header\">\n\t\t\t<span>\n\t\t\t\t<NcAvatar v-if=\"isUserShare\"\n\t\t\t\t\tclass=\"sharing-entry__avatar\"\n\t\t\t\t\t:is-no-user=\"share.shareType !== ShareType.User\"\n\t\t\t\t\t:user=\"share.shareWith\"\n\t\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\t\t:menu-position=\"'left'\"\n\t\t\t\t\t:url=\"share.shareWithAvatar\" />\n\t\t\t\t<component :is=\"getShareTypeIcon(share.type)\" :size=\"32\" />\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t<h1>{{ title }}</h1>\n\t\t\t</span>\n\t\t</div>\n\t\t<div class=\"sharingTabDetailsView__wrapper\">\n\t\t\t<div ref=\"quickPermissions\" class=\"sharingTabDetailsView__quick-permissions\">\n\t\t\t\t<div>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"read-only\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.READ_ONLY.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'View only') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ViewIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"upload-edit\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"allPermissions\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t<template v-if=\"allowsFileDrop\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow upload and editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EditIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"allowsFileDrop\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"file-drop\"\n\t\t\t\t\t\t:button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.FILE_DROP.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'File request') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ t('files_sharing', 'Upload only') }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<UploadIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"custom\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"'custom'\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"expandCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ customPermissionsList }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"sharingTabDetailsView__advanced-control\">\n\t\t\t\t<NcButton id=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\talignment=\"end-reverse\"\n\t\t\t\t\taria-controls=\"advancedSectionAccordionAdvanced\"\n\t\t\t\t\t:aria-expanded=\"advancedControlExpandedValue\"\n\t\t\t\t\t@click=\"advancedSectionAccordionExpanded = !advancedSectionAccordionExpanded\">\n\t\t\t\t\t{{ t('files_sharing', 'Advanced settings') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuDownIcon v-if=\"!advancedSectionAccordionExpanded\" />\n\t\t\t\t\t\t<MenuUpIcon v-else />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div v-if=\"advancedSectionAccordionExpanded\"\n\t\t\t\tid=\"advancedSectionAccordionAdvanced\"\n\t\t\t\tclass=\"sharingTabDetailsView__advanced\"\n\t\t\t\taria-labelledby=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\trole=\"region\">\n\t\t\t\t<section>\n\t\t\t\t\t<NcInputField v-if=\"isPublicShare\"\n\t\t\t\t\t\tclass=\"sharingTabDetailsView__label\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share label')\"\n\t\t\t\t\t\t:value.sync=\"share.label\" />\n\t\t\t\t\t<NcInputField v-if=\"config.allowCustomTokens && isPublicShare && !isNewShare\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share link token')\"\n\t\t\t\t\t\t:helper-text=\"t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.')\"\n\t\t\t\t\t\tshow-trailing-button\n\t\t\t\t\t\t:trailing-button-label=\"loadingToken ? t('files_sharing', 'Generating…') : t('files_sharing', 'Generate new token')\"\n\t\t\t\t\t\t:value.sync=\"share.token\"\n\t\t\t\t\t\t@trailing-button-click=\"generateNewToken\">\n\t\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"loadingToken\" />\n\t\t\t\t\t\t\t<Refresh v-else :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcInputField>\n\t\t\t\t\t<template v-if=\"isPublicShare\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"isPasswordProtected\" :disabled=\"isPasswordEnforced\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Set password') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcPasswordField v-if=\"isPasswordProtected\"\n\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t:value=\"hasUnsavedPassword ? share.newPassword : ''\"\n\t\t\t\t\t\t\t:error=\"passwordError\"\n\t\t\t\t\t\t\t:helper-text=\"errorPasswordLabel || passwordHint\"\n\t\t\t\t\t\t\t:required=\"isPasswordEnforced && isNewShare\"\n\t\t\t\t\t\t\t:label=\"t('files_sharing', 'Password')\"\n\t\t\t\t\t\t\t@update:value=\"onPasswordChange\" />\n\n\t\t\t\t\t\t<!-- Migrate icons and remote -> icon=\"icon-info\"-->\n\t\t\t\t\t\t<span v-if=\"isEmailShareType && passwordExpirationTime\" icon=\"icon-info\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-else-if=\"isEmailShareType && passwordExpirationTime !== null\" icon=\"icon-error\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expired') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"canTogglePasswordProtectedByTalkAvailable\"\n\t\t\t\t\t\t:checked.sync=\"isPasswordProtectedByTalk\"\n\t\t\t\t\t\t@update:checked=\"onPasswordProtectedByTalkChange\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Video verification') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"hasExpirationDate\" :disabled=\"isExpiryDateEnforced\">\n\t\t\t\t\t\t{{ isExpiryDateEnforced\n\t\t\t\t\t\t\t? t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t\t: t('files_sharing', 'Set expiration date') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcDateTimePickerNative v-if=\"hasExpirationDate\"\n\t\t\t\t\t\tid=\"share-date-picker\"\n\t\t\t\t\t\t:value=\"new Date(share.expireDate ?? dateTomorrow)\"\n\t\t\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t\t\thide-label\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\ttype=\"date\"\n\t\t\t\t\t\t@input=\"onExpirationChange\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare\"\n\t\t\t\t\t\t:disabled=\"canChangeHideDownload\"\n\t\t\t\t\t\t:checked.sync=\"share.hideDownload\"\n\t\t\t\t\t\t@update:checked=\"queueUpdate('hideDownload')\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Hide download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-else\n\t\t\t\t\t\t:disabled=\"!canSetDownload\"\n\t\t\t\t\t\t:checked.sync=\"canDownload\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"download\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Allow download and sync') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Note to recipient') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<template v-if=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t<NcTextArea :label=\"t('files_sharing', 'Note to recipient')\"\n\t\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Enter a note for the share recipient')\"\n\t\t\t\t\t\t\t:value.sync=\"share.note\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare && isFolder\"\n\t\t\t\t\t\t:checked.sync=\"showInGridView\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Show files in grid view') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t\tref=\"externalLinkActions\"\n\t\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:share=\"share\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"setCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<section v-if=\"setCustomPermissions\" class=\"custom-permissions-group\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canRemoveReadPermission\"\n\t\t\t\t\t\t\t:checked.sync=\"hasRead\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"read\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Read') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isFolder\"\n\t\t\t\t\t\t\t:disabled=\"!canSetCreate\"\n\t\t\t\t\t\t\t:checked.sync=\"canCreate\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"create\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Create') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetEdit\"\n\t\t\t\t\t\t\t:checked.sync=\"canEdit\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"update\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Edit') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"resharingIsPossible\"\n\t\t\t\t\t\t\t:disabled=\"!canSetReshare\"\n\t\t\t\t\t\t\t:checked.sync=\"canReshare\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"share\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Share') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetDelete\"\n\t\t\t\t\t\t\t:checked.sync=\"canDelete\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"delete\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div class=\"sharingTabDetailsView__delete\">\n\t\t\t\t\t\t<NcButton v-if=\"!isNewShare\"\n\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Delete share')\"\n\t\t\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\t\t\t:readonly=\"false\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t@click.prevent=\"removeShare\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CloseIcon :size=\"16\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete share') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"sharingTabDetailsView__footer\">\n\t\t\t<div class=\"button-group\">\n\t\t\t\t<NcButton data-cy-files-sharing-share-editor-action=\"cancel\"\n\t\t\t\t\t@click=\"cancel\">\n\t\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\tdata-cy-files-sharing-share-editor-action=\"save\"\n\t\t\t\t\t:disabled=\"creating\"\n\t\t\t\t\t@click=\"saveShare\">\n\t\t\t\t\t{{ shareButtonText }}\n\t\t\t\t\t<template v-if=\"creating\" #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { getLanguage } from '@nextcloud/l10n'\nimport { ShareType } from '@nextcloud/sharing'\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\n\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcDateTimePickerNative from '@nextcloud/vue/components/NcDateTimePickerNative'\nimport NcInputField from '@nextcloud/vue/components/NcInputField'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcPasswordField from '@nextcloud/vue/components/NcPasswordField'\nimport NcTextArea from '@nextcloud/vue/components/NcTextArea'\n\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport EditIcon from 'vue-material-design-icons/Pencil.vue'\nimport EmailIcon from 'vue-material-design-icons/Email.vue'\nimport LinkIcon from 'vue-material-design-icons/Link.vue'\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue'\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue'\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue'\nimport ViewIcon from 'vue-material-design-icons/Eye.vue'\nimport UploadIcon from 'vue-material-design-icons/Upload.vue'\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport Refresh from 'vue-material-design-icons/Refresh.vue'\n\nimport ExternalShareAction from '../components/ExternalShareAction.vue'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport { generateToken } from '../services/TokenService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n\thasPermissions,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingDetailsTab',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcDateTimePickerNative,\n\t\tNcInputField,\n\t\tNcLoadingIcon,\n\t\tNcPasswordField,\n\t\tNcTextArea,\n\t\tCloseIcon,\n\t\tCircleIcon,\n\t\tEditIcon,\n\t\tExternalShareAction,\n\t\tLinkIcon,\n\t\tGroupIcon,\n\t\tShareIcon,\n\t\tUserIcon,\n\t\tUploadIcon,\n\t\tViewIcon,\n\t\tMenuDownIcon,\n\t\tMenuUpIcon,\n\t\tDotsHorizontalIcon,\n\t\tRefresh,\n\t},\n\tmixins: [ShareRequests, SharesMixin],\n\tprops: {\n\t\tshareRequestValue: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twriteNoteToRecipientIsChecked: false,\n\t\t\tsharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\trevertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\tsetCustomPermissions: false,\n\t\t\tpasswordError: false,\n\t\t\tadvancedSectionAccordionExpanded: false,\n\t\t\tbundledPermissions: BUNDLED_PERMISSIONS,\n\t\t\tisFirstComponentLoad: true,\n\t\t\ttest: false,\n\t\t\tcreating: false,\n\t\t\tinitialToken: this.share.token,\n\t\t\tloadingToken: false,\n\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tswitch (this.share.type) {\n\t\t\tcase ShareType.User:\n\t\t\t\treturn t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })\n\t\t\tcase ShareType.Email:\n\t\t\t return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn t('files_sharing', 'Share with group')\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn t('files_sharing', 'Share in conversation')\n\t\t\tcase ShareType.Remote: {\n\t\t\t\tconst [user, server] = this.share.shareWith.split('@')\n\t\t\t\treturn t('files_sharing', 'Share with {user} on remote server {server}', { user, server })\n\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\t\treturn t('files_sharing', 'Share with remote group')\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn t('files_sharing', 'Share with guest')\n\t\t\tdefault: {\n\t\t\t\tif (this.share.id) {\n\t\t\t\t\t// Share already exists\n\t\t\t\t\treturn t('files_sharing', 'Update share')\n\t\t\t\t} else {\n\t\t\t\t\treturn t('files_sharing', 'Create share')\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\tallPermissions() {\n\t\t\treturn this.isFolder ? this.bundledPermissions.ALL.toString() : this.bundledPermissions.ALL_FILE.toString()\n\t\t},\n\t\t/**\n\t\t * Can the sharee edit the shared file ?\n\t\t */\n\t\tcanEdit: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasUpdatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isEditChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee create the shared file ?\n\t\t */\n\t\tcanCreate: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasCreatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isCreateChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee delete the shared file ?\n\t\t */\n\t\tcanDelete: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDeletePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDeleteChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee reshare the file ?\n\t\t */\n\t\tcanReshare: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasSharePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReshareChecked: checked })\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Change the default view for public shares from \"list\" to \"grid\"\n\t\t */\n\t\tshowInGridView: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('config', 'grid_view', false)\n\t\t\t},\n\t\t\t/** @param {boolean} value If the default view should be changed to \"grid\" */\n\t\t\tset(value) {\n\t\t\t\tthis.setShareAttribute('config', 'grid_view', value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Can the sharee download files or only view them ?\n\t\t */\n\t\tcanDownload: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('permissions', 'download', true)\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.setShareAttribute('permissions', 'download', checked)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is this share readable\n\t\t * Needed for some federated shares that might have been added from file requests links\n\t\t */\n\t\thasRead: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasReadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Does the current share have an expiration date\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasExpirationDate: {\n\t\t\tget() {\n\t\t\t\treturn this.isValidShareAttribute(this.share.expireDate)\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.expireDate = enabled\n\t\t\t\t\t? this.formatDateToString(this.defaultExpiryDate)\n\t\t\t\t\t: ''\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share a folder ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisSetDownloadButtonVisible() {\n\t\t\tconst allowedMimetypes = [\n\t\t\t\t// Office documents\n\t\t\t\t'application/msword',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/vnd.ms-powerpoint',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t'application/vnd.ms-excel',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.oasis.opendocument.text',\n\t\t\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t\t]\n\n\t\t\treturn this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype)\n\t\t},\n\t\tisPasswordEnforced() {\n\t\t\treturn this.isPublicShare && this.config.enforcePasswordForPublicLink\n\t\t},\n\t\tdefaultExpiryDate() {\n\t\t\tif ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultInternalExpirationDate)\n\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultRemoteExpireDateEnabled)\n\t\t\t} else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultExpirationDate)\n\t\t\t}\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\t\tisUserShare() {\n\t\t\treturn this.share.type === ShareType.User\n\t\t},\n\t\tisGroupShare() {\n\t\t\treturn this.share.type === ShareType.Group\n\t\t},\n\t\tallowsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tif (this.share.type === ShareType.Link || this.share.type === ShareType.Email) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\thasFileDropPermissions() {\n\t\t\treturn this.share.permissions === this.bundledPermissions.FILE_DROP\n\t\t},\n\t\tshareButtonText() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\treturn t('files_sharing', 'Save share')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Update share')\n\n\t\t},\n\t\tresharingIsPossible() {\n\t\t\treturn this.config.isResharingAllowed && this.share.type !== ShareType.Link && this.share.type !== ShareType.Email\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can edit the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetEdit() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE) || this.canEdit\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can create the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetCreate() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_CREATE) || this.canCreate\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can delete the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDelete() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_DELETE) || this.canDelete\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can reshare the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetReshare() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_SHARE) || this.canReshare\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can download the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDownload() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.canDownload() || this.canDownload)\n\t\t},\n\t\tcanRemoveReadPermission() {\n\t\t\treturn this.allowsFileDrop && (\n\t\t\t\tthis.share.type === ShareType.Link\n\t\t\t\t\t|| this.share.type === ShareType.Email\n\t\t\t)\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPublicShare || !this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Is Talk enabled?\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t\tcustomPermissionsList() {\n\t\t\t// Key order will be different, because ATOMIC_PERMISSIONS are numbers\n\t\t\tconst translatedPermissions = {\n\t\t\t\t[ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n\t\t\t\t[ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n\t\t\t\t[ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n\t\t\t\t[ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n\t\t\t\t[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),\n\t\t\t}\n\n\t\t\tconst permissionsList = [\n\t\t\t\tATOMIC_PERMISSIONS.READ,\n\t\t\t\t...(this.isFolder ? [ATOMIC_PERMISSIONS.CREATE] : []),\n\t\t\t\tATOMIC_PERMISSIONS.UPDATE,\n\t\t\t\t...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []),\n\t\t\t\t...(this.isFolder ? [ATOMIC_PERMISSIONS.DELETE] : []),\n\t\t\t]\n\n\t\t\treturn permissionsList.filter((permission) => hasPermissions(this.share.permissions, permission))\n\t\t\t\t.map((permission, index) => index === 0\n\t\t\t\t\t? translatedPermissions[permission]\n\t\t\t\t\t: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))\n\t\t\t\t.join(', ')\n\t\t},\n\t\tadvancedControlExpandedValue() {\n\t\t\treturn this.advancedSectionAccordionExpanded ? 'true' : 'false'\n\t\t},\n\t\terrorPasswordLabel() {\n\t\t\tif (this.passwordError) {\n\t\t\t\treturn t('files_sharing', 'Password field cannot be empty')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tpasswordHint() {\n\t\t\tif (this.isNewShare || this.hasUnsavedPassword) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Replace current password')\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && action.advanced\n\t\t\t// filter only the advanced registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\t},\n\twatch: {\n\t\tsetCustomPermissions(isChecked) {\n\t\t\tif (isChecked) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t} else {\n\t\t\t\tthis.sharingPermission = this.revertSharingPermission\n\t\t\t}\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.initializePermissions()\n\t\tthis.initializeAttributes()\n\t\tlogger.debug('Share object received', { share: this.share })\n\t\tlogger.debug('Configuration object received', { config: this.config })\n\t},\n\n\tmounted() {\n\t\tthis.$refs.quickPermissions?.querySelector('input:checked')?.focus()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Set a share attribute on the current share\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {boolean} value The value\n\t\t */\n\t\tsetShareAttribute(scope, key, value) {\n\t\t\tif (!this.share.attributes) {\n\t\t\t\tthis.$set(this.share, 'attributes', [])\n\t\t\t}\n\n\t\t\tconst attribute = this.share.attributes\n\t\t\t\t.find((attr) => attr.scope === scope || attr.key === key)\n\n\t\t\tif (attribute) {\n\t\t\t\tattribute.value = value\n\t\t\t} else {\n\t\t\t\tthis.share.attributes.push({\n\t\t\t\t\tscope,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the value of a share attribute\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {undefined|boolean} fallback The fallback to return if not found\n\t\t */\n\t\tgetShareAttribute(scope, key, fallback = undefined) {\n\t\t\tconst attribute = this.share.attributes?.find((attr) => attr.scope === scope && attr.key === key)\n\t\t\treturn attribute?.value ?? fallback\n\t\t},\n\n\t\tasync generateNewToken() {\n\t\t\tif (this.loadingToken) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loadingToken = true\n\t\t\ttry {\n\t\t\t\tthis.share.token = await generateToken()\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_sharing', 'Failed to generate a new token'))\n\t\t\t}\n\t\t\tthis.loadingToken = false\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.share.token = this.initialToken\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\n\t\tupdateAtomicPermissions({\n\t\t\tisReadChecked = this.hasRead,\n\t\t\tisEditChecked = this.canEdit,\n\t\t\tisCreateChecked = this.canCreate,\n\t\t\tisDeleteChecked = this.canDelete,\n\t\t\tisReshareChecked = this.canReshare,\n\t\t} = {}) {\n\t\t\t// calc permissions if checked\n\n\t\t\tif (!this.isFolder && (isCreateChecked || isDeleteChecked)) {\n\t\t\t\tlogger.debug('Ignoring create/delete permissions for file share — only available for folders')\n\t\t\t\tisCreateChecked = false\n\t\t\t\tisDeleteChecked = false\n\t\t\t}\n\n\t\t\tconst permissions = 0\n\t\t\t\t| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)\n\t\t\t\t| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)\n\t\t\t\t| (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0)\n\t\t\t\t| (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0)\n\t\t\t\t| (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0)\n\t\t\tthis.share.permissions = permissions\n\t\t},\n\t\texpandCustomPermissions() {\n\t\t\tif (!this.advancedSectionAccordionExpanded) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\t\t\tthis.toggleCustomPermissions()\n\t\t},\n\t\ttoggleCustomPermissions(selectedPermission) {\n\t\t\tconst isCustomPermissions = this.sharingPermission === 'custom'\n\t\t\tthis.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'\n\t\t\tthis.setCustomPermissions = isCustomPermissions\n\t\t},\n\t\tasync initializeAttributes() {\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif ((this.config.enableLinkPasswordByDefault || this.isPasswordEnforced) && this.isPublicShare) {\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t\tthis.$set(this.share, 'password', this.share.newPassword)\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\t\t\t\t/* Set default expiration dates if configured */\n\t\t\t\tif (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultExpirationDate.toDateString()\n\t\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString()\n\t\t\t\t} else if (this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultInternalExpirationDate.toDateString()\n\t\t\t\t}\n\n\t\t\t\tif (this.isValidShareAttribute(this.share.expireDate)) {\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If there is an enforced expiry date, then existing shares created before enforcement\n\t\t\t// have no expiry date, hence we set it here.\n\t\t\tif (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {\n\t\t\t\tthis.hasExpirationDate = true\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.isValidShareAttribute(this.share.password)\n\t\t\t\t|| this.isValidShareAttribute(this.share.expireDate)\n\t\t\t\t|| this.isValidShareAttribute(this.share.label)\n\t\t\t) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\n\t\t\tif (this.share.note) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t}\n\n\t\t},\n\t\thandleShareType() {\n\t\t\tif ('shareType' in this.share) {\n\t\t\t\tthis.share.type = this.share.shareType\n\t\t\t} else if (this.share.share_type) {\n\t\t\t\tthis.share.type = this.share.share_type\n\t\t\t}\n\t\t},\n\t\thandleDefaultPermissions() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst defaultPermissions = this.config.defaultPermissions\n\t\t\t\tif (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t\tthis.sharingPermission = defaultPermissions.toString()\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\t\tthis.share.permissions = defaultPermissions\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t\tthis.setCustomPermissions = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Read permission required for share creation\n\t\t\tif (!this.canRemoveReadPermission) {\n\t\t\t\tthis.hasRead = true\n\t\t\t}\n\t\t},\n\t\thandleCustomPermissions() {\n\t\t\tif (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\tthis.setCustomPermissions = true\n\t\t\t} else if (this.share.permissions) {\n\t\t\t\tthis.sharingPermission = this.share.permissions.toString()\n\t\t\t}\n\t\t},\n\t\tinitializePermissions() {\n\t\t\tthis.handleShareType()\n\t\t\tthis.handleDefaultPermissions()\n\t\t\tthis.handleCustomPermissions()\n\t\t},\n\t\tasync saveShare() {\n\t\t\tconst permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']\n\t\t\tconst publicShareAttributes = ['label', 'password', 'hideDownload']\n\t\t\tif (this.config.allowCustomTokens) {\n\t\t\t\tpublicShareAttributes.push('token')\n\t\t\t}\n\t\t\tif (this.isPublicShare) {\n\t\t\t\tpermissionsAndAttributes.push(...publicShareAttributes)\n\t\t\t}\n\t\t\tconst sharePermissionsSet = parseInt(this.sharingPermission)\n\t\t\tif (this.setCustomPermissions) {\n\t\t\t\tthis.updateAtomicPermissions()\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = sharePermissionsSet\n\t\t\t}\n\n\t\t\tif (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t// It's not possible to create an existing file.\n\t\t\t\tthis.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\t}\n\t\t\tif (!this.writeNoteToRecipientIsChecked) {\n\t\t\t\tthis.share.note = ''\n\t\t\t}\n\t\t\tif (this.isPasswordProtected) {\n\t\t\t\tif (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {\n\t\t\t\t\tthis.share.password = this.share.newPassword\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t} else if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) {\n\t\t\t\t\tthis.passwordError = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.share.password = ''\n\t\t\t}\n\n\t\t\tif (!this.hasExpirationDate) {\n\t\t\t\tthis.share.expireDate = ''\n\t\t\t}\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst incomingShare = {\n\t\t\t\t\tpermissions: this.share.permissions,\n\t\t\t\t\tshareType: this.share.type,\n\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\tattributes: this.share.attributes,\n\t\t\t\t\tnote: this.share.note,\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t}\n\n\t\t\t\tincomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''\n\n\t\t\t\tif (this.isPasswordProtected) {\n\t\t\t\t\tincomingShare.password = this.share.password\n\t\t\t\t}\n\n\t\t\t\tlet share\n\t\t\t\ttry {\n\t\t\t\t\tthis.creating = true\n\t\t\t\t\tshare = await this.addShare(incomingShare)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.creating = false\n\t\t\t\t\t// Error is already handled by ShareRequests mixin\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// ugly hack to make code work - we need the id to be set but at the same time we need to keep values we want to update\n\t\t\t\tthis.share._share.id = share.id\n\t\t\t\tawait this.queueUpdate(...permissionsAndAttributes)\n\t\t\t\t// Also a ugly hack to update the updated permissions\n\t\t\t\tfor (const prop of permissionsAndAttributes) {\n\t\t\t\t\tif (prop in share && prop in this.share) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tshare[prop] = this.share[prop]\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tshare._share[prop] = this.share[prop]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.share = share\n\t\t\t\tthis.creating = false\n\t\t\t\tthis.$emit('add:share', this.share)\n\t\t\t} else {\n\t\t\t\t// Let's update after creation as some attrs are only available after creation\n\t\t\t\tthis.$emit('update:share', this.share)\n\t\t\t\temit('update:share', this.share)\n\t\t\t\tthis.queueUpdate(...permissionsAndAttributes)\n\t\t\t}\n\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\n\t\t\tif (this.$refs.externalLinkActions?.length > 0) {\n\t\t\t\tawait Promise.allSettled(this.$refs.externalLinkActions.map((action) => {\n\t\t\t\t\tif (typeof action.$children.at(0)?.onSave !== 'function') {\n\t\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t\t}\n\t\t\t\t\treturn action.$children.at(0)?.onSave?.()\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {Share} share incoming share object\n\t\t */\n\t\tasync addShare(share) {\n\t\t\tlogger.debug('Adding a new share from the input for', { share })\n\t\t\tconst path = this.path\n\t\t\ttry {\n\t\t\t\tconst resultingShare = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: share.shareType,\n\t\t\t\t\tshareWith: share.shareWith,\n\t\t\t\t\tpermissions: share.permissions,\n\t\t\t\t\texpireDate: share.expireDate,\n\t\t\t\t\tattributes: JSON.stringify(share.attributes),\n\t\t\t\t\t...(share.note ? { note: share.note } : {}),\n\t\t\t\t\t...(share.password ? { password: share.password } : {}),\n\t\t\t\t})\n\t\t\t\treturn resultingShare\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while adding new share', { error })\n\t\t\t} finally {\n\t\t\t\t// this.loading = false // No loader here yet\n\t\t\t}\n\t\t},\n\t\tasync removeShare() {\n\t\t\tawait this.onDelete()\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tif (password === '') {\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\tthis.passwordError = this.isNewShare && this.isPasswordEnforced\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.passwordError = !this.isValidShareAttribute(password)\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\t\tisValidShareAttribute(value) {\n\t\t\tif ([null, undefined].includes(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!(value.trim().length > 0)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tgetShareTypeIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn LinkIcon\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn UserIcon\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn GroupIcon\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn EmailIcon\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn CircleIcon\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.ScienceMesh:\n\t\t\t\treturn ShareIcon\n\t\t\tdefault:\n\t\t\t\treturn null // Or a default icon component if needed\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nexport const generateToken = async () => {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n};\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!./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=4d0ee506&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=4d0ee506&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 \"4d0ee506\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharingTab\" :class=\"{ 'icon-loading': loading }\">\n\t\t<!-- error message -->\n\t\t<div v-if=\"error\" class=\"emptycontent\" :class=\"{ emptyContentWithSections: sections.length > 0 }\">\n\t\t\t<div class=\"icon icon-error\" />\n\t\t\t<h2>{{ error }}</h2>\n\t\t</div>\n\n\t\t<!-- shares content -->\n\t\t<div v-show=\"!showSharingDetailsView\"\n\t\t\tclass=\"sharingTab__content\">\n\t\t\t<!-- shared with me information -->\n\t\t\t<ul v-if=\"isSharedWithMe\">\n\t\t\t\t<SharingEntrySimple v-bind=\"sharedWithMe\" class=\"sharing-entry__reshare\">\n\t\t\t\t\t<template #avatar>\n\t\t\t\t\t\t<NcAvatar :user=\"sharedWithMe.user\"\n\t\t\t\t\t\t\t:display-name=\"sharedWithMe.displayName\"\n\t\t\t\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t\t\t\t</template>\n\t\t\t\t</SharingEntrySimple>\n\t\t\t</ul>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Internal shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Internal shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ internalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- add new share input -->\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:placeholder=\"internalShareInputPlaceholder\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- other shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\tref=\"shareList\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- inherited shares -->\n\t\t\t\t<SharingInherited v-if=\"canReshare && !loading\" :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- internal link copy -->\n\t\t\t\t<SharingEntryInternal :file-info=\"fileInfo\" />\n\t\t\t</section>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'External shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'External shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ externalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:is-external=\"true\"\n\t\t\t\t\t:placeholder=\"externalShareInputPlaceholder\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- Non link external shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\t:shares=\"externalShares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- link shares list -->\n\t\t\t\t<SharingLinkList v-if=\"!loading\"\n\t\t\t\t\tref=\"linkShareList\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:shares=\"linkShares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t</section>\n\n\t\t\t<section v-if=\"sections.length > 0 && !showSharingDetailsView\">\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Additional shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Additional shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ additionalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- additional entries, use it with cautious -->\n\t\t\t\t<div v-for=\"(section, index) in sections\"\n\t\t\t\t\t:ref=\"'section-' + index\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<component :is=\"section($refs['section-'+index], fileInfo)\" :file-info=\"fileInfo\" />\n\t\t\t\t</div>\n\n\t\t\t\t<!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config \"projects.enabled\" ; ignore this / remove it / move into own section) -->\n\t\t\t\t<div v-if=\"projectsEnabled\"\n\t\t\t\t\tv-show=\"!showSharingDetailsView && fileInfo\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<CollectionList :id=\"`${fileInfo.id}`\"\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t:name=\"fileInfo.name\" />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\n\t\t<!-- share details -->\n\t\t<SharingDetailsTab v-if=\"showSharingDetailsView\"\n\t\t\t:file-info=\"shareDetailsData.fileInfo\"\n\t\t\t:share=\"shareDetailsData.share\"\n\t\t\t@close-sharing-details=\"toggleShareDetailsView\"\n\t\t\t@add:share=\"addShare\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</div>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { orderBy } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { CollectionList } from 'nextcloud-vue-collections'\nimport { ShareType } from '@nextcloud/sharing'\n\nimport InfoIcon from 'vue-material-design-icons/Information.vue'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\n\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcButton from '@nextcloud/vue/components/NcButton'\n\nimport { shareWithTitle } from '../utils/SharedWithMe.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\nimport SharingInput from '../components/SharingInput.vue'\n\nimport SharingInherited from './SharingInherited.vue'\nimport SharingLinkList from './SharingLinkList.vue'\nimport SharingList from './SharingList.vue'\nimport SharingDetailsTab from './SharingDetailsTab.vue'\n\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tname: 'SharingTab',\n\n\tcomponents: {\n\t\tCollectionList,\n\t\tInfoIcon,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcPopover,\n\t\tSharingEntryInternal,\n\t\tSharingEntrySimple,\n\t\tSharingInherited,\n\t\tSharingInput,\n\t\tSharingLinkList,\n\t\tSharingList,\n\t\tSharingDetailsTab,\n\t},\n\tmixins: [ShareDetails],\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tdeleteEvent: null,\n\t\t\terror: '',\n\t\t\texpirationInterval: null,\n\t\t\tloading: true,\n\n\t\t\tfileInfo: null,\n\n\t\t\t// reshare Share object\n\t\t\treshare: null,\n\t\t\tsharedWithMe: {},\n\t\t\tshares: [],\n\t\t\tlinkShares: [],\n\t\t\texternalShares: [],\n\n\t\t\tsections: OCA.Sharing.ShareTabSections.getSections(),\n\t\t\tprojectsEnabled: loadState('core', 'projects_enabled', false),\n\t\t\tshowSharingDetailsView: false,\n\t\t\tshareDetailsData: {},\n\t\t\treturnFocusElement: null,\n\n\t\t\tinternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.'),\n\t\t\texternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.'),\n\t\t\tadditionalSharesHelpText: t('files_sharing', 'Shares that are not part of the internal or external shares. This can be shares from apps or other sources.'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is this share shared with me?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSharedWithMe() {\n\t\t\treturn Object.keys(this.sharedWithMe).length > 0\n\t\t},\n\n\t\tcanReshare() {\n\t\t\treturn !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)\n\t\t\t\t|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)\n\t\t},\n\n\t\tinternalShareInputPlaceholder() {\n\t\t\treturn this.config.showFederatedSharesAsInternal\n\t\t\t\t? t('files_sharing', 'Share with accounts, teams, federated cloud IDs')\n\t\t\t\t: t('files_sharing', 'Share with accounts and teams')\n\t\t},\n\n\t\texternalShareInputPlaceholder() {\n\t\t\treturn this.config.showFederatedSharesAsInternal\n\t\t\t\t? t('files_sharing', 'Email')\n\t\t\t\t: t('files_sharing', 'Email, federated cloud ID')\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.getShares()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing shares infos\n\t\t */\n\t\tasync getShares() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\t// init params\n\t\t\t\tconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\t\t\t\tconst format = 'json'\n\t\t\t\t// TODO: replace with proper getFUllpath implementation of our own FileInfo model\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\n\t\t\t\t// fetch shares\n\t\t\t\tconst fetchShares = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treshares: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tconst fetchSharedWithMe = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tshared_with_me: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t// wait for data\n\t\t\t\tconst [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe])\n\t\t\t\tthis.loading = false\n\n\t\t\t\t// process results\n\t\t\t\tthis.processSharedWithMe(sharedWithMe)\n\t\t\t\tthis.processShares(shares)\n\t\t\t} catch (error) {\n\t\t\t\tif (error?.response?.data?.ocs?.meta?.message) {\n\t\t\t\t\tthis.error = error.response.data.ocs.meta.message\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = t('files_sharing', 'Unable to load the shares list')\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t\tconsole.error('Error loading the shares list', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tclearInterval(this.expirationInterval)\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.sharedWithMe = {}\n\t\t\tthis.shares = []\n\t\t\tthis.linkShares = []\n\t\t\tthis.showSharingDetailsView = false\n\t\t\tthis.shareDetailsData = {}\n\t\t},\n\n\t\t/**\n\t\t * Update sharedWithMe.subtitle with the appropriate\n\t\t * expiration time left\n\t\t *\n\t\t * @param {Share} share the sharedWith Share object\n\t\t */\n\t\tupdateExpirationSubtitle(share) {\n\t\t\tconst expiration = moment(share.expireDate).unix()\n\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n\t\t\t\trelativetime: moment(expiration * 1000).fromNow(),\n\t\t\t}))\n\n\t\t\t// share have expired\n\t\t\tif (moment().unix() > expiration) {\n\t\t\t\tclearInterval(this.expirationInterval)\n\t\t\t\t// TODO: clear ui if share is expired\n\t\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the current shares data\n\t\t * and init shares[]\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessShares({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n\t\t\t\tconst shares = orderBy(\n\t\t\t\t\tdata.ocs.data.map(share => new Share(share)),\n\t\t\t\t\t[\n\t\t\t\t\t\t// First order by the \"share with\" label\n\t\t\t\t\t\t(share) => share.shareWithDisplayName,\n\t\t\t\t\t\t// Then by the label\n\t\t\t\t\t\t(share) => share.label,\n\t\t\t\t\t\t// And last resort order by createdTime\n\t\t\t\t\t\t(share) => share.createdTime,\n\t\t\t\t\t],\n\t\t\t\t)\n\n\t\t\t\tfor (const share of shares) {\n\t\t\t\t\tif ([ShareType.Link, ShareType.Email].includes(share.type)) {\n\t\t\t\t\t\tthis.linkShares.push(share)\n\t\t\t\t\t} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {\n\t\t\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\t\t\tthis.shares.push(share)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.externalShares.push(share)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.shares.push(share)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`Processed ${this.linkShares.length} link share(s)`)\n\t\t\t\tlogger.debug(`Processed ${this.shares.length} share(s)`)\n\t\t\t\tlogger.debug(`Processed ${this.externalShares.length} external share(s)`)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the sharedWithMe share data\n\t\t * and init sharedWithMe\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessSharedWithMe({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data[0]) {\n\t\t\t\tconst share = new Share(data)\n\t\t\t\tconst title = shareWithTitle(share)\n\t\t\t\tconst displayName = share.ownerDisplayName\n\t\t\t\tconst user = share.owner\n\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName,\n\t\t\t\t\ttitle,\n\t\t\t\t\tuser,\n\t\t\t\t}\n\t\t\t\tthis.reshare = share\n\n\t\t\t\t// If we have an expiration date, use it as subtitle\n\t\t\t\t// Refresh the status every 10s and clear if expired\n\t\t\t\tif (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n\t\t\t\t\t// first update\n\t\t\t\t\tthis.updateExpirationSubtitle(share)\n\t\t\t\t\t// interval update\n\t\t\t\t\tthis.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)\n\t\t\t\t}\n\t\t\t} else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== getCurrentUser().uid : false) {\n\t\t\t\t// Fallback to compare owner and current user.\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName: this.fileInfo.shareOwner,\n\t\t\t\t\ttitle: t(\n\t\t\t\t\t\t'files_sharing',\n\t\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t\t{ owner: this.fileInfo.shareOwner },\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ escape: false },\n\t\t\t\t\t),\n\t\t\t\t\tuser: this.fileInfo.shareOwnerId,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add a new share into the shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} [resolve] a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve = () => { }) {\n\t\t\t// only catching share type MAIL as link shares are added differently\n\t\t\t// meaning: not from the ShareInput\n\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\tthis.linkShares.unshift(share)\n\t\t\t} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {\n\t\t\t\tif (this.config.showFederatedSharesAsInternal) {\n\t\t\t\t\tthis.shares.unshift(share)\n\t\t\t\t} else {\n\t\t\t\t\tthis.externalShares.unshift(share)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.shares.unshift(share)\n\t\t\t}\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\t// Get reference for this.linkShares or this.shares\n\t\t\tconst shareList\n\t\t\t\t= share.type === ShareType.Email\n\t\t\t\t\t|| share.type === ShareType.Link\n\t\t\t\t\t? this.linkShares\n\t\t\t\t\t: this.shares\n\t\t\tconst index = shareList.findIndex(item => item.id === share.id)\n\t\t\tif (index !== -1) {\n\t\t\t\tshareList.splice(index, 1)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tlet listComponent = this.$refs.shareList\n\t\t\t\t// Only mail shares comes from the input, link shares\n\t\t\t\t// are managed internally in the SharingLinkList component\n\t\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\t\tlistComponent = this.$refs.linkShareList\n\t\t\t\t}\n\t\t\t\tconst newShare = listComponent.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\ttoggleShareDetailsView(eventData) {\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tconst isAction = Array.from(document.activeElement.classList)\n\t\t\t\t\t.some(className => className.startsWith('action-'))\n\t\t\t\tif (isAction) {\n\t\t\t\t\tconst menuId = document.activeElement.closest('[role=\"menu\"]')?.id\n\t\t\t\t\tthis.returnFocusElement = document.querySelector(`[aria-controls=\"${menuId}\"]`)\n\t\t\t\t} else {\n\t\t\t\t\tthis.returnFocusElement = document.activeElement\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (eventData) {\n\t\t\t\tthis.shareDetailsData = eventData\n\t\t\t}\n\n\t\t\tthis.showSharingDetailsView = !this.showSharingDetailsView\n\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tthis.$nextTick(() => { // Wait for next tick as the element must be visible to be focused\n\t\t\t\t\tthis.returnFocusElement?.focus()\n\t\t\t\t\tthis.returnFocusElement = null\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\nconst shareWithTitle = function(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.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!./SharingTab.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!./SharingTab.vue?vue&type=style&index=0&id=872931a2&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./SharingTab.vue?vue&type=style&index=0&id=872931a2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=872931a2&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=872931a2&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"872931a2\",\n null\n \n)\n\nexport default component.exports","// 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, `.sharing-entry[data-v-2dbd45b5]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-2dbd45b5]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-2dbd45b5]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-2dbd45b5],.sharing-entry__summary__desc small[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-2dbd45b5]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntry.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: flex-start;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\n\\t\\t&__desc {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tpadding-bottom: 0;\\n\\t\\t\\tline-height: 1.2em;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t\\tp,\\n\\t\\t\\tsmall {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-unique {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-2aa230f1]{display:block}.share-select[data-v-2aa230f1] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-2aa230f1] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA\",\"sourcesContent\":[\"\\n.share-select {\\n\\tdisplay: block;\\n\\n\\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\\n\\t// Overrider NcActionms button to make it small\\n\\t:deep(.action-item__menutoggle) {\\n\\t\\tcolor: var(--color-primary-element) !important;\\n\\t\\tfont-size: 12.5px !important;\\n\\t\\theight: auto !important;\\n\\t\\tmin-height: auto !important;\\n\\n\\t\\t.button-vue__text {\\n\\t\\t\\tfont-weight: normal !important;\\n\\t\\t}\\n\\n\\t\\t.button-vue__icon {\\n\\t\\t\\theight: 24px !important;\\n\\t\\t\\tmin-height: 24px !important;\\n\\t\\t\\twidth: 24px !important;\\n\\t\\t\\tmin-width: 24px !important;\\n\\t\\t}\\n\\n\\t\\t.button-vue__wrapper {\\n\\t\\t\\t// Emulate NcButton's alignment=center-reverse\\n\\t\\t\\tflex-direction: row-reverse !important;\\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, `.sharing-entry[data-v-4d06a90a]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-4d06a90a]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-4d06a90a]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-4d06a90a]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-4d06a90a]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-4d06a90a]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-4d06a90a]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-4d06a90a] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-4d06a90a]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-4d06a90a]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-4d06a90a],.sharing-entry .action-item~.sharing-entry__loading[data-v-4d06a90a]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-4d06a90a]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-4d06a90a]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-4d06a90a]{width:100%;height:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryLink.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\t}\\n\\n\\t\\t&__desc {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\tline-height: 1.2em;\\n\\n\\t\\t\\tp {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__title {\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmargin-inline-start: auto;\\n\\t\\t}\\n\\n\\t&:not(.sharing-entry--share) &__actions {\\n\\t\\t.new-share-link {\\n\\t\\t\\tborder-top: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t:deep(.avatar-link-share) {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t.sharing-entry__action--public-upload {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__loading {\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 14px;\\n\\t\\tmargin-inline-start: auto;\\n\\t}\\n\\n\\t// put menus to the left\\n\\t// but only the first one\\n\\t.action-item {\\n\\n\\t\\t~.action-item,\\n\\t\\t~.sharing-entry__loading {\\n\\t\\t\\tmargin-inline-start: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-success);\\n\\t}\\n}\\n\\n// styling for the qr-code container\\n.qr-code-dialog {\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\tjustify-content: center;\\n\\n\\t&__img {\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../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, `.fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-42733c12] {\\n display: flex;\\n}\\n.linked-icons img[data-v-42733c12] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-42733c12]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-42733c12] {\\n display: none;\\n}\\n.popovermenu.open[data-v-42733c12] {\\n display: block;\\n}\\nli.collection-list-item[data-v-42733c12] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-42733c12] {\\n margin-top: 6px;\\n}\\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-42733c12] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-42733c12] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-42733c12] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\\n opacity: 1;\\n}\\n.shouldshake[data-v-42733c12] {\\n animation: shake-42733c12 0.6s 1 linear;\\n}\\n@keyframes shake-42733c12 {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}.collection-list *[data-v-8ebb2593] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-8ebb2593] {\\n display: flex;\\n align-items: start;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-8ebb2593] {\\n margin-top: auto;\\n}\\n#collection-select-container[data-v-8ebb2593] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-8ebb2593] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-8ebb2593]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-8ebb2593] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-8ebb2593] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-8ebb2593] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-8ebb2593] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-8ebb2593] {\\n display: block;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-8ebb2593] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","commonjsRequire","Error","qrcode","fn","createCommonjsModule","f","r","e","n","t","o","i","u","a","code","p","call","length","require","Promise","prototype","then","getSymbolSize","getRowColCoords","version","posCount","Math","floor","size","intervals","ceil","positions","reverse","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","data","this","mode","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","value","indexOf","put","BitBuffer","buffer","get","index","bufIndex","num","putBit","getLengthInBits","bit","BufferUtil","BitMatrix","alloc","reservedBit","set","row","col","reserved","xor","isReserved","ByteData","BYTE","from","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","string","toLowerCase","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","d","EXP_TABLE","LOG_TABLE","x","log","exp","mul","y","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","isNaN","parseInt","undefined","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","abs","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","Object","keys","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","toString","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","result","offset","slice","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","isArray","setupFormatInfo","matrix","bits","createData","segments","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","Array","ecData","maxDataSize","b","dataSize","encode","max","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","bind","create","options","toSJISFunc","setToSJISFunction","Polynomial","Buffer","genPoly","initialize","pad","paddedData","concat","remainder","start","buff","copy","numeric","kanji","byte","replace","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","str","test","dijkstra","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","sort","s1","s2","map","obj","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","graph","nodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","key","lastCount","prevNodeId","buildGraph","segs","buildNodes","path","find_path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","opts","cb","args","arguments","argsNum","isLastArgCb","getContext","resolve","reject","toCanvas","render","toDataURL","renderToDataURL","_","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","type","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","split","apply","hexValue","join","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","TYPED_ARRAY_SUPPORT","arr","Uint8Array","__proto__","foo","typedArraySupport","K_MAX_LENGTH","arg","allocUnsafe","that","TypeError","ArrayBuffer","byteOffset","byteLength","RangeError","buf","fromArrayLike","fromArrayBuffer","createBuffer","actual","isBuffer","len","checked","val","fromObject","utf8ToBytes","units","codePoint","leadSurrogate","bytes","charCodeAt","isView","Symbol","species","defineProperty","configurable","enumerable","writable","isFinite","remaining","src","dst","blitBuffer","utf8Write","end","newBuf","subarray","sliceLen","target","targetStart","fill","list","_isBuffer","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","for","SlowBuffer","INSPECT_MAX_BYTES","setPrototypeOf","encodingOrOffset","encoding","isEncoding","isInstance","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","strLen","parsed","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","kMaxLength","proto","console","error","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","INVALID_BASE64_RE","base64clean","constructor","name","alphabet","i16","single_source_shortest_paths","s","predecessors","costs","closest","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","msg","extract_shortest_path_from_predecessor_list","T","queue","sorter","default_sorter","item","shift","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","props","tag","default","$slots","watch","$props","deep","immediate","handler","$el","generate","methods","_this","url","innerHTML","mounted","factory","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","parseFloat","stringify","Date","toISOString","orderBy","collection","identifiers2","orders","sorting","collator","Intl","Collator","usage","a2","b2","identifier","entries","sortNodes","sortingOptions","sortingMode","sortingOrder","sortFavoritesFirst","attributes","favorite","sortFoldersFirst","basename2","displayname","basename","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","i2","getValue","isName","getAllMatches","matches","match","allmatches","startIndex","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","assign","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","substring","readAttributeStr","attrStr","attrStrStart","validateAttributeString","line","tagClosed","otg","openPos","afterAmp","validateAmpersand","JSON","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","count","message","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","attrs","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","add","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","window","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","search","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","charAt","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","requireOrderedObjParser","validator2","parse","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attr","attrVal","suppressBooleanAttributes","textValue","jArray","format","requireDebug","debug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","buildTextValNode","buildObjectNode","repeat","startsWith","build","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","release","identifierBase","base","throwErrors","er","requireParse","requireValid","requireMajor","self","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","iterator","appendTo","dict","has","getAll","query","propValue","useProxy","Proxy","construct","Function","USPProto","polyfill","toStringTag","callback","thisArg","parseToDict","getOwnPropertyNames","k","values","items","makeIterator","prev","cur","decode","decodeURIComponent","next","done","pairs","prop","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","global","freeSelf","now","reWhitespace","reTrimStart","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","nativeMax","nativeMin","service","http","listCollection","collectionId","renameCollection","collectionName","ocs","getCollectionsByResource","resourceType","resourceId","createCollection","post","response","addResource","removeResource","delete","params","state","collections","mutations","addCollections","addCollection","removeCollection","filter","updateCollection","findIndex","_item","actions","fetchCollectionsByResource","baseResourceType","baseResourceId","addResourceToCollection","resources","normalizeComponent","scriptExports","render3","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","CollectionListItem","components","NcAvatar","NcActions","NcActionButton","detailsOpen","newName","computed","getIcon","resource","iconClass","typeClass","limitedResources","iconUrl","mimetype","OC","MimeType","getIconUrl","toggleDetails","showDetails","hideDetails","openRename","catch","$set","setTimeout","_vm","_c","_self","staticClass","on","_v","_s","class","rename","$event","preventDefault","directives","rawName","expression","domProps","composing","_e","_l","link","_debouncedSearch","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","loading","searchCollections","finally","_sfc_main","NcSelect","isActive","Boolean","setup","selectIsOpen","generatingCodes","codes","model","isSelectOpen","find","placeholder","OCP","Collaboration","getTypes","method","title","getLabel","action","trigger","select","selectedOption","id2","setError","showSelect","$refs","focus","hideSelect","isVueComponent","_isVue","CollectionList","_m","ref","scopedSlots","_u","option","$$v","Config","_defineProperty","_capabilities","getCapabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isPublicShareAllowed","enabled","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","loadState","getLoggerBuilder","setApp","detectUser","Share","ocsData","hide_download","mail_send","warn","_share","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","note","label","mailSend","hideDownload","_ref","scope","attribute","_ref2","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","isFileRequest","logger","setAttribute","attrUpdate","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","storageId","storage_id","storage","itemSource","item_source","status","required","subtitle","isUnique","ariaExpanded","ariaExpandedValue","_t","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","copied","copySuccess","internalLink","location","protocol","host","generateUrl","copyLinkTooltip","internalLinkSubtitle","copyLink","navigator","clipboard","writeText","showSuccess","shareEntrySimple","actionsComponent","proxy","shareUrl","generateOcsUrl","createShare","shareType","publicUpload","request","axios","share","emit","errorMessage","meta","showError","deleteShare","Notification","showTemporary","updateShare","properties","ATOMIC_PERMISSIONS","NONE","READ","UPDATE","CREATE","DELETE","SHARE","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","openSharingDetails","shareRequestObject","handlerInput","suggestions","externalShareRequestObject","mapShareRequestToShareObject","originalPermissions","strippedPermissions","shareDetails","$emit","openShareDetailsForCustomSettings","setCustomPermissions","is_no_user","isNoUser","user","displayName","mixins","ShareRequests","ShareDetails","shares","linkShares","reshare","canReshare","isExternal","shareInputId","random","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","noResultText","getRecommendations","onSelected","asyncFind","debounceGetSuggestions","getSuggestions","query_lookup_default","remoteTypes","ShareType","Remote","RemoteGroup","User","Group","Team","Room","Guest","Deck","ScienceMesh","Email","perPage","exact","rawExactSuggestions","elem","rawSuggestions","exactSuggestions","filterOutExistingShares","formatForMultiselect","lookupEntry","lookupEnabled","condition","allSuggestions","nameCounts","desc","info","debounce","rawRecommendations","getCurrentUser","uid","sharesObj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","server","shareWithDescription","uuid","clear-search-on-blur","async","verbose","api","ratio","passwordSet","crypto","getRandomValues","client","getClient","SharesRequests","errors","saving","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","maxExpirationDateEnforced","isPasswordProtected","GeneratePassword","$delete","getNode","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","formatDateToString","UTC","getFullYear","getMonth","onExpirationChange","parsedDate","onNoteChange","onNoteSubmit","newNote","queueUpdate","onDelete","_len","propertyNames","_key","updatedShare","updateSuccessMessage","onSyncError","names","propertyEl","focusable","querySelector","debounceQueueUpdate","NcActionLink","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","removeShare","stopPropagation","emits","fillColor","_b","$attrs","DropdownIcon","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","NcButton","NcPopover","NcDateTime","ClockIcon","expiryTime","getTime","timeFormat","dateStyle","timeStyle","is","_g","handlers","ExternalShareAction","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","CloseIcon","PlusIcon","SharingEntryQuickShareSelect","ShareExpiryTime","shareCreationComplete","defaultExpirationDateEnabled","pending","ExternalLegacyLinkActions","ExternalLinkActions","ExternalShareActions","showQRCode","isEmailShareType","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","canTogglePasswordProtectedByTalkAvailable","hasUnsavedPassword","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","newPassword","shareLink","baseURL","getBaseUrl","actionsTooltip","externalLegacyLinkActions","externalLinkActions","advanced","isPasswordPolicyEnabled","canChangeHideDownload","shareAttributes","shareAttribute","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","component","pushNewLinkShare","update","newShare","copyButton","onPasswordChange","onPasswordDisable","onPasswordSubmit","onPasswordProtectedByTalkChange","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","onCancel","SharingEntryLink","minLength","actionIndex","canLinkShare","hasLinkShares","hasShares","addShare","awaitForShare","$nextTick","$children","DotsHorizontalIcon","tooltip","hasStatus","SharingEntry","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","Refresh","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","bundledPermissions","isFirstComponentLoad","creating","initialToken","loadingToken","userName","email","allPermissions","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","allSettled","at","onSave","getShareTypeIcon","EmailIcon","refInFor","InfoIcon","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","deleteEvent","expirationInterval","sharedWithMe","externalShares","sections","ShareTabSections","getSections","projectsEnabled","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","isSharedWithMe","internalShareInputPlaceholder","externalShareInputPlaceholder","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","escape","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","activeElement","classList","className","menuId","emptyContentWithSections","section"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/4589-4589.js.map.license b/dist/4589-4589.js.map.license new file mode 120000 index 00000000000..2d74c5eba9f --- /dev/null +++ b/dist/4589-4589.js.map.license @@ -0,0 +1 @@ +4589-4589.js.license
\ No newline at end of file diff --git a/dist/files_sharing-files_sharing_tab.js b/dist/files_sharing-files_sharing_tab.js index bf0b13c7efa..10f2fbb1f35 100644 --- a/dist/files_sharing-files_sharing_tab.js +++ b/dist/files_sharing-files_sharing_tab.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e,t,r,i={69196:(e,t,r)=>{var i=r(85471),n=r(21777),o=r(53334);r.nc=(0,n.aV)(),window.OCA.Sharing||(window.OCA.Sharing={}),Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],console.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(console.error("Invalid search result provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalLinkActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalLinkActions initialized")}get state(){return this._state}registerAction(e){return OC.debug&&console.warn("OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead"),"object"==typeof e&&e.icon&&e.name&&e.url?(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every((e=>"function"==typeof e))?this._state.actions.findIndex((t=>t.id===e.id))>-1?(console.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),i.Ay.prototype.t=o.t,i.Ay.prototype.n=o.n;let a=null;window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"sharing",name:(0,o.t)("files_sharing","Sharing"),iconSvg:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-share-variant" viewBox="0 0 24 24"><path d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z" /></svg>',async mount(e,t,n){const o=(await Promise.all([r.e(4208),r.e(1092)]).then(r.bind(r,69018))).default,s=i.Ay.extend(o);a&&a.$destroy(),a=new s({parent:n}),await a.update(t),a.$mount(e)},update(e){a.update(e)},destroy(){a&&(a.$destroy(),a=null)}}))}))}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=i,e=[],o.O=(t,r,i,n)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){r=e[u][0],i=e[u][1],n=e[u][2];for(var s=!0,c=0;c<r.length;c++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](r[c])))?r.splice(c--,1):(s=!1,n<a&&(a=n));if(s){e.splice(u--,1);var l=i();void 0!==l&&(t=l)}}return t}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[r,i,n]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{857:"e91c54a0a2f8bb5ed755",1092:"e575e490e067770d79e4",2441:"2c050d23f9070dfa7f03",5862:"142cd48ca8ec32e57725",6227:"3494381758c4754ef3f5"}[e],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",o.l=(e,i,n,a)=>{if(t[e])t[e].push(i);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=e),t[e]=[i];var f=(r,i)=>{s.onerror=s.onload=null,clearTimeout(p);var n=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach((e=>e(i))),r)return r(i)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=4958,(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{o.b=document.baseURI||self.location.href;var e={4958:0};o.f.j=(t,r)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var n=new Promise(((r,n)=>i=e[t]=[r,n]));r.push(i[2]=n);var a=o.p+o.u(t),s=new Error;o.l(a,(r=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,i[1](s)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,r)=>{var i,n,a=r[0],s=r[1],c=r[2],l=0;if(a.some((t=>0!==e[t]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var u=c(o)}for(t&&t(r);l<a.length;l++)n=a[l],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),o.nc=void 0;var a=o.O(void 0,[4208],(()=>o(69196)));a=o.O(a)})(); -//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=c43eb1b038ca588ba4f2
\ No newline at end of file +(()=>{"use strict";var e,t,r,i={69196:(e,t,r)=>{var i=r(85471),n=r(21777),o=r(53334);r.nc=(0,n.aV)(),window.OCA.Sharing||(window.OCA.Sharing={}),Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],console.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(console.error("Invalid search result provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalLinkActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalLinkActions initialized")}get state(){return this._state}registerAction(e){return OC.debug&&console.warn("OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead"),"object"==typeof e&&e.icon&&e.name&&e.url?(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every((e=>"function"==typeof e))?this._state.actions.findIndex((t=>t.id===e.id))>-1?(console.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),i.Ay.prototype.t=o.t,i.Ay.prototype.n=o.n;let a=null;window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"sharing",name:(0,o.t)("files_sharing","Sharing"),iconSvg:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-share-variant" viewBox="0 0 24 24"><path d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z" /></svg>',async mount(e,t,n){const o=(await Promise.all([r.e(4208),r.e(4589)]).then(r.bind(r,60611))).default,s=i.Ay.extend(o);a&&a.$destroy(),a=new s({parent:n}),await a.update(t),a.$mount(e)},update(e){a.update(e)},destroy(){a&&(a.$destroy(),a=null)}}))}))}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=i,e=[],o.O=(t,r,i,n)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){r=e[u][0],i=e[u][1],n=e[u][2];for(var s=!0,c=0;c<r.length;c++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](r[c])))?r.splice(c--,1):(s=!1,n<a&&(a=n));if(s){e.splice(u--,1);var l=i();void 0!==l&&(t=l)}}return t}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[r,i,n]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{857:"e91c54a0a2f8bb5ed755",2441:"2c050d23f9070dfa7f03",4589:"55861ddae6afc02f82cc",5862:"142cd48ca8ec32e57725",6227:"3494381758c4754ef3f5"}[e],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",o.l=(e,i,n,a)=>{if(t[e])t[e].push(i);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=e),t[e]=[i];var f=(r,i)=>{s.onerror=s.onload=null,clearTimeout(p);var n=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach((e=>e(i))),r)return r(i)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=4958,(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{o.b=document.baseURI||self.location.href;var e={4958:0};o.f.j=(t,r)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var n=new Promise(((r,n)=>i=e[t]=[r,n]));r.push(i[2]=n);var a=o.p+o.u(t),s=new Error;o.l(a,(r=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,i[1](s)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,r)=>{var i,n,a=r[0],s=r[1],c=r[2],l=0;if(a.some((t=>0!==e[t]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var u=c(o)}for(t&&t(r);l<a.length;l++)n=a[l],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),o.nc=void 0;var a=o.O(void 0,[4208],(()=>o(69196)));a=o.O(a)})(); +//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=043156f5a2f8aa258be6
\ No newline at end of file diff --git a/dist/files_sharing-files_sharing_tab.js.map b/dist/files_sharing-files_sharing_tab.js.map index a3f407e0760..ddf3aede825 100644 --- a/dist/files_sharing-files_sharing_tab.js.map +++ b/dist/files_sharing-files_sharing_tab.js.map @@ -1 +1 @@ -{"version":3,"file":"files_sharing-files_sharing_tab.js?v=c43eb1b038ca588ba4f2","mappings":"uBAAIA,ECAAC,EACAC,E,wDCiBJC,EAAAA,IAAoBC,EAAAA,EAAAA,MAGfC,OAAOC,IAAIC,UACfF,OAAOC,IAAIC,QAAU,CAAC,GAEvBC,OAAOC,OAAOJ,OAAOC,IAAIC,QAAS,CAAEG,YAAa,ICnBlC,MAIdC,WAAAA,G,YAAc,K,OAAA,G,kSAAA,a,wFAEbC,KAAKC,OAAS,CAAC,EAGfD,KAAKC,OAAOC,QAAU,GACtBC,QAAQC,MAAM,sCACf,CASA,SAAIC,GACH,OAAOL,KAAKC,MACb,CAgBAK,YAAAA,CAAaC,GACZ,MAAkC,KAA9BA,EAAOC,YAAYC,QACO,mBAAnBF,EAAOG,SACjBV,KAAKC,OAAOC,QAAQS,KAAKJ,IAClB,IAERJ,QAAQS,MAAM,iCAAkCL,IACzC,EACR,KD1BDX,OAAOC,OAAOJ,OAAOC,IAAIC,QAAS,CAAEkB,oBAAqB,IEpB1C,MAIdd,WAAAA,G,YAAc,K,OAAA,G,kSAAA,a,wFAEbC,KAAKC,OAAS,CAAC,EAGfD,KAAKC,OAAOa,QAAU,GACtBX,QAAQC,MAAM,8CACf,CASA,SAAIC,GACH,OAAOL,KAAKC,MACb,CASAc,cAAAA,CAAeC,GAGd,OAFAC,GAAGb,OAASD,QAAQe,KAAK,8FAEH,iBAAXF,GAAuBA,EAAOG,MAAQH,EAAOI,MAAQJ,EAAOK,KACtErB,KAAKC,OAAOa,QAAQH,KAAKK,IAClB,IAERb,QAAQS,MAAM,0BAA2BI,IAClC,EACR,KFnBDpB,OAAOC,OAAOJ,OAAOC,IAAIC,QAAS,CAAE2B,qBAAsB,IGrB3C,MAIdvB,WAAAA,G,YAAc,K,OAAA,G,kSAAA,a,wFAEbC,KAAKC,OAAS,CAAC,EAGfD,KAAKC,OAAOa,QAAU,GACtBX,QAAQC,MAAM,+CACf,CASA,SAAIC,GACH,OAAOL,KAAKC,MACb,CAkBAc,cAAAA,CAAeC,GAEd,MAAsB,iBAAXA,GACc,iBAAdA,EAAOO,IACS,mBAAhBP,EAAOQ,MACbC,MAAMC,QAAQV,EAAOW,YACK,iBAApBX,EAAOY,UACbhC,OAAOiC,OAAOb,EAAOY,UAAUE,OAAMpB,GAA8B,mBAAZA,IAMvCV,KAAKC,OAAOa,QAAQiB,WAAUC,GAASA,EAAMT,KAAOP,EAAOO,MAAO,GAEtFpB,QAAQS,MAAM,8BAA8BI,EAAOO,oBAAqBP,IACjE,IAGRhB,KAAKC,OAAOa,QAAQH,KAAKK,IAClB,IAZNb,QAAQS,MAAM,0BAA2BI,IAClC,EAYT,KHvCDpB,OAAOC,OAAOJ,OAAOC,IAAIC,QAAS,CAAEsC,iBAAkB,IItBvC,MAIdlC,WAAAA,G,YAAc,K,OAAA,G,kSAAA,gB,wFACbC,KAAKkC,UAAY,EAClB,CAKAC,eAAAA,CAAgBC,GACfpC,KAAKkC,UAAUvB,KAAKyB,EACrB,CAEAC,WAAAA,GACC,OAAOrC,KAAKkC,SACb,KJODI,EAAAA,GAAIC,UAAUC,EAAIA,EAAAA,EAClBF,EAAAA,GAAIC,UAAUE,EAAIA,EAAAA,EAGlB,IAAIC,EAAc,KAElBjD,OAAOkD,iBAAiB,oBAAoB,WACvCjD,IAAIkD,OAASlD,IAAIkD,MAAMC,SAC1BnD,IAAIkD,MAAMC,QAAQC,YAAY,IAAIpD,IAAIkD,MAAMC,QAAQE,IAAI,CACvDxB,GAAI,UACJH,MAAMoB,EAAAA,EAAAA,GAAE,gBAAiB,WACzBQ,Q,miBAEA,WAAMC,CAAMC,EAAIC,EAAUC,GACzB,MAAMC,SAAoB,0DAAkCC,QACtDC,EAAOjB,EAAAA,GAAIkB,OAAOH,GAEpBX,GACHA,EAAYe,WAEbf,EAAc,IAAIa,EAAK,CAEtBG,OAAQN,UAGHV,EAAYiB,OAAOR,GACzBT,EAAYkB,OAAOV,EACpB,EAEAS,MAAAA,CAAOR,GACNT,EAAYiB,OAAOR,EACpB,EAEAU,OAAAA,GACKnB,IACHA,EAAYe,WACZf,EAAc,KAEhB,IAGH,G,GKrEIoB,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CACjDzC,GAAIyC,EACJK,QAAQ,EACRF,QAAS,CAAC,GAUX,OANAG,EAAoBN,GAAUO,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG3EK,EAAOC,QAAS,EAGTD,EAAOD,OACf,CAGAJ,EAAoBS,EAAIF,EP5BpBlF,EAAW,GACf2E,EAAoBU,EAAI,CAAClE,EAAQmE,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAI3F,EAAS4F,OAAQD,IAAK,CACrCL,EAAWtF,EAAS2F,GAAG,GACvBJ,EAAKvF,EAAS2F,GAAG,GACjBH,EAAWxF,EAAS2F,GAAG,GAE3B,IAJA,IAGIE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAahF,OAAOuF,KAAKpB,EAAoBU,GAAG3C,OAAOsD,GAASrB,EAAoBU,EAAEW,GAAKV,EAASQ,MAC9IR,EAASW,OAAOH,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACb7F,EAASiG,OAAON,IAAK,GACrB,IAAIO,EAAIX,SACET,IAANoB,IAAiB/E,EAAS+E,EAC/B,CACD,CACA,OAAO/E,CArBP,CAJCqE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI3F,EAAS4F,OAAQD,EAAI,GAAK3F,EAAS2F,EAAI,GAAG,GAAKH,EAAUG,IAAK3F,EAAS2F,GAAK3F,EAAS2F,EAAI,GACrG3F,EAAS2F,GAAK,CAACL,EAAUC,EAAIC,EAuBjB,EQ3Bdb,EAAoBtB,EAAK2B,IACxB,IAAImB,EAASnB,GAAUA,EAAOoB,WAC7B,IAAOpB,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoB0B,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdxB,EAAoB0B,EAAI,CAACtB,EAASwB,KACjC,IAAI,IAAIP,KAAOO,EACX5B,EAAoB6B,EAAED,EAAYP,KAASrB,EAAoB6B,EAAEzB,EAASiB,IAC5ExF,OAAOiG,eAAe1B,EAASiB,EAAK,CAAEU,YAAY,EAAMC,IAAKJ,EAAWP,IAE1E,ECNDrB,EAAoBiC,EAAI,CAAC,EAGzBjC,EAAoBkC,EAAKC,GACjBC,QAAQC,IAAIxG,OAAOuF,KAAKpB,EAAoBiC,GAAGK,QAAO,CAACC,EAAUlB,KACvErB,EAAoBiC,EAAEZ,GAAKc,EAASI,GAC7BA,IACL,KCNJvC,EAAoBwC,EAAKL,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCHzMnC,EAAoByC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOzG,MAAQ,IAAI0G,SAAS,cAAb,EAChB,CAAE,MAAOT,GACR,GAAsB,iBAAXxG,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBsE,EAAoB6B,EAAI,CAACe,EAAKC,IAAUhH,OAAO2C,UAAUsE,eAAetC,KAAKoC,EAAKC,GZA9EvH,EAAa,CAAC,EACdC,EAAoB,aAExByE,EAAoB+C,EAAI,CAACzF,EAAK0F,EAAM3B,EAAKc,KACxC,GAAG7G,EAAWgC,GAAQhC,EAAWgC,GAAKV,KAAKoG,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW/C,IAARkB,EAEF,IADA,IAAI8B,EAAUC,SAASC,qBAAqB,UACpCrC,EAAI,EAAGA,EAAImC,EAAQlC,OAAQD,IAAK,CACvC,IAAIsC,EAAIH,EAAQnC,GAChB,GAAGsC,EAAEC,aAAa,QAAUjG,GAAOgG,EAAEC,aAAa,iBAAmBhI,EAAoB8F,EAAK,CAAE4B,EAASK,EAAG,KAAO,CACpH,CAEGL,IACHC,GAAa,GACbD,EAASG,SAASI,cAAc,WAEzBC,QAAU,QACjBR,EAAOS,QAAU,IACb1D,EAAoB2D,IACvBV,EAAOW,aAAa,QAAS5D,EAAoB2D,IAElDV,EAAOW,aAAa,eAAgBrI,EAAoB8F,GAExD4B,EAAOY,IAAMvG,GAEdhC,EAAWgC,GAAO,CAAC0F,GACnB,IAAIc,EAAmB,CAACC,EAAMC,KAE7Bf,EAAOgB,QAAUhB,EAAOiB,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAU9I,EAAWgC,GAIzB,UAHOhC,EAAWgC,GAClB2F,EAAOoB,YAAcpB,EAAOoB,WAAWC,YAAYrB,GACnDmB,GAAWA,EAAQG,SAAS3D,GAAQA,EAAGoD,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAUc,WAAWV,EAAiBW,KAAK,UAAMtE,EAAW,CAAEuE,KAAM,UAAWC,OAAQ1B,IAAW,MACtGA,EAAOgB,QAAUH,EAAiBW,KAAK,KAAMxB,EAAOgB,SACpDhB,EAAOiB,OAASJ,EAAiBW,KAAK,KAAMxB,EAAOiB,QACnDhB,GAAcE,SAASwB,KAAKC,YAAY5B,EApCkB,CAoCX,EavChDjD,EAAoBuB,EAAKnB,IACH,oBAAX0E,QAA0BA,OAAOC,aAC1ClJ,OAAOiG,eAAe1B,EAAS0E,OAAOC,YAAa,CAAEC,MAAO,WAE7DnJ,OAAOiG,eAAe1B,EAAS,aAAc,CAAE4E,OAAO,GAAO,ECL9DhF,EAAoBiF,IAAO5E,IAC1BA,EAAO6E,MAAQ,GACV7E,EAAO8E,WAAU9E,EAAO8E,SAAW,IACjC9E,GCHRL,EAAoBmB,EAAI,K,MCAxB,IAAIiE,EACApF,EAAoByC,EAAE4C,gBAAeD,EAAYpF,EAAoByC,EAAE6C,SAAW,IACtF,IAAIlC,EAAWpD,EAAoByC,EAAEW,SACrC,IAAKgC,GAAahC,IACbA,EAASmC,eAAkE,WAAjDnC,EAASmC,cAAcC,QAAQC,gBAC5DL,EAAYhC,EAASmC,cAAc1B,MAC/BuB,GAAW,CACf,IAAIjC,EAAUC,EAASC,qBAAqB,UAC5C,GAAGF,EAAQlC,OAEV,IADA,IAAID,EAAImC,EAAQlC,OAAS,EAClBD,GAAK,KAAOoE,IAAc,aAAaM,KAAKN,KAAaA,EAAYjC,EAAQnC,KAAK6C,GAE3F,CAID,IAAKuB,EAAW,MAAM,IAAIO,MAAM,yDAChCP,EAAYA,EAAUQ,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1G5F,EAAoB6F,EAAIT,C,WClBxBpF,EAAoB8F,EAAI1C,SAAS2C,SAAWC,KAAKV,SAASW,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPlG,EAAoBiC,EAAEd,EAAI,CAACgB,EAASI,KAElC,IAAI4D,EAAqBnG,EAAoB6B,EAAEqE,EAAiB/D,GAAW+D,EAAgB/D,QAAWhC,EACtG,GAA0B,IAAvBgG,EAGF,GAAGA,EACF5D,EAAS3F,KAAKuJ,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIhE,SAAQ,CAACiE,EAASC,IAAYH,EAAqBD,EAAgB/D,GAAW,CAACkE,EAASC,KAC1G/D,EAAS3F,KAAKuJ,EAAmB,GAAKC,GAGtC,IAAI9I,EAAM0C,EAAoB6F,EAAI7F,EAAoBwC,EAAEL,GAEpDtF,EAAQ,IAAI8I,MAgBhB3F,EAAoB+C,EAAEzF,GAfF0G,IACnB,GAAGhE,EAAoB6B,EAAEqE,EAAiB/D,KAEf,KAD1BgE,EAAqBD,EAAgB/D,MACR+D,EAAgB/D,QAAWhC,GACrDgG,GAAoB,CACtB,IAAII,EAAYvC,IAAyB,SAAfA,EAAMU,KAAkB,UAAYV,EAAMU,MAChE8B,EAAUxC,GAASA,EAAMW,QAAUX,EAAMW,OAAOd,IACpDhH,EAAM4J,QAAU,iBAAmBtE,EAAU,cAAgBoE,EAAY,KAAOC,EAAU,IAC1F3J,EAAMQ,KAAO,iBACbR,EAAM6H,KAAO6B,EACb1J,EAAM6J,QAAUF,EAChBL,EAAmB,GAAGtJ,EACvB,CACD,GAEwC,SAAWsF,EAASA,EAE/D,CACD,EAWFnC,EAAoBU,EAAES,EAAKgB,GAA0C,IAA7B+D,EAAgB/D,GAGxD,IAAIwE,EAAuB,CAACC,EAA4BnJ,KACvD,IAKIwC,EAAUkC,EALVxB,EAAWlD,EAAK,GAChBoJ,EAAcpJ,EAAK,GACnBqJ,EAAUrJ,EAAK,GAGIuD,EAAI,EAC3B,GAAGL,EAASoG,MAAMvJ,GAAgC,IAAxB0I,EAAgB1I,KAAa,CACtD,IAAIyC,KAAY4G,EACZ7G,EAAoB6B,EAAEgF,EAAa5G,KACrCD,EAAoBS,EAAER,GAAY4G,EAAY5G,IAGhD,GAAG6G,EAAS,IAAItK,EAASsK,EAAQ9G,EAClC,CAEA,IADG4G,GAA4BA,EAA2BnJ,GACrDuD,EAAIL,EAASM,OAAQD,IACzBmB,EAAUxB,EAASK,GAChBhB,EAAoB6B,EAAEqE,EAAiB/D,IAAY+D,EAAgB/D,IACrE+D,EAAgB/D,GAAS,KAE1B+D,EAAgB/D,GAAW,EAE5B,OAAOnC,EAAoBU,EAAElE,EAAO,EAGjCwK,EAAqBhB,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FgB,EAAmBzC,QAAQoC,EAAqBlC,KAAK,KAAM,IAC3DuC,EAAmBpK,KAAO+J,EAAqBlC,KAAK,KAAMuC,EAAmBpK,KAAK6H,KAAKuC,G,KCvFvFhH,EAAoB2D,QAAKxD,ECGzB,IAAI8G,EAAsBjH,EAAoBU,OAAEP,EAAW,CAAC,OAAO,IAAOH,EAAoB,SAC9FiH,EAAsBjH,EAAoBU,EAAEuG,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_sharing/src/files_sharing_tab.js","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalLinkActions.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\n\nimport ShareSearch from './services/ShareSearch.js'\nimport ExternalLinkActions from './services/ExternalLinkActions.js'\nimport ExternalShareActions from './services/ExternalShareActions.js'\nimport TabSections from './services/TabSections.js'\n\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Init Sharing Tab Service\nif (!window.OCA.Sharing) {\n\twindow.OCA.Sharing = {}\n}\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() })\nObject.assign(window.OCA.Sharing, { ExternalLinkActions: new ExternalLinkActions() })\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() })\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() })\n\nVue.prototype.t = t\nVue.prototype.n = n\n\n// Init Sharing tab component\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\t\tid: 'sharing',\n\t\t\tname: t('files_sharing', 'Sharing'),\n\t\t\ticonSvg: ShareVariant,\n\n\t\t\tasync mount(el, fileInfo, context) {\n\t\t\t\tconst SharingTab = (await import('./views/SharingTab.vue')).default\n\t\t\t\tconst View = Vue.extend(SharingTab)\n\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t}\n\t\t\t\tTabInstance = new View({\n\t\t\t\t\t// Better integration with vue parent component\n\t\t\t\t\tparent: context,\n\t\t\t\t})\n\t\t\t\t// Only mount after we have all the info we need\n\t\t\t\tawait TabInstance.update(fileInfo)\n\t\t\t\tTabInstance.$mount(el)\n\t\t\t},\n\n\t\t\tupdate(fileInfo) {\n\t\t\t\tTabInstance.update(fileInfo)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t\tTabInstance = null\n\t\t\t\t}\n\t\t\t},\n\t\t}))\n\t}\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ShareSearch {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tconsole.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid search result provided', result)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalLinkActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalLinkActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new action for the link share\n\t * Mostly used by the social sharing app.\n\t *\n\t * @param {object} action new action component to register\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tOC.debug && console.warn('OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead')\n\n\t\tif (typeof action === 'object' && action.icon && action.name && action.url) {\n\t\t\tthis._state.actions.push(action)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid action provided', action)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalShareActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record<string, unknown>} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every(handler => typeof handler === 'function')) {\n\t\t\tconsole.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex(check => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tconsole.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class TabSections {\n\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"e91c54a0a2f8bb5ed755\",\"1092\":\"e575e490e067770d79e4\",\"2441\":\"2c050d23f9070dfa7f03\",\"5862\":\"142cd48ca8ec32e57725\",\"6227\":\"3494381758c4754ef3f5\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(69196)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","console","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalLinkActions","actions","registerAction","action","OC","warn","icon","name","url","ExternalShareActions","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","TabInstance","addEventListener","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","fileInfo","context","SharingTab","default","View","extend","$destroy","parent","update","$mount","destroy","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files_sharing-files_sharing_tab.js?v=043156f5a2f8aa258be6","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_sharing/src/files_sharing_tab.js","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalLinkActions.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\n\nimport ShareSearch from './services/ShareSearch.js'\nimport ExternalLinkActions from './services/ExternalLinkActions.js'\nimport ExternalShareActions from './services/ExternalShareActions.js'\nimport TabSections from './services/TabSections.js'\n\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Init Sharing Tab Service\nif (!window.OCA.Sharing) {\n\twindow.OCA.Sharing = {}\n}\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() })\nObject.assign(window.OCA.Sharing, { ExternalLinkActions: new ExternalLinkActions() })\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() })\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() })\n\nVue.prototype.t = t\nVue.prototype.n = n\n\n// Init Sharing tab component\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\t\tid: 'sharing',\n\t\t\tname: t('files_sharing', 'Sharing'),\n\t\t\ticonSvg: ShareVariant,\n\n\t\t\tasync mount(el, fileInfo, context) {\n\t\t\t\tconst SharingTab = (await import('./views/SharingTab.vue')).default\n\t\t\t\tconst View = Vue.extend(SharingTab)\n\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t}\n\t\t\t\tTabInstance = new View({\n\t\t\t\t\t// Better integration with vue parent component\n\t\t\t\t\tparent: context,\n\t\t\t\t})\n\t\t\t\t// Only mount after we have all the info we need\n\t\t\t\tawait TabInstance.update(fileInfo)\n\t\t\t\tTabInstance.$mount(el)\n\t\t\t},\n\n\t\t\tupdate(fileInfo) {\n\t\t\t\tTabInstance.update(fileInfo)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t\tTabInstance = null\n\t\t\t\t}\n\t\t\t},\n\t\t}))\n\t}\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ShareSearch {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tconsole.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid search result provided', result)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalLinkActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalLinkActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new action for the link share\n\t * Mostly used by the social sharing app.\n\t *\n\t * @param {object} action new action component to register\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tOC.debug && console.warn('OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead')\n\n\t\tif (typeof action === 'object' && action.icon && action.name && action.url) {\n\t\t\tthis._state.actions.push(action)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid action provided', action)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalShareActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record<string, unknown>} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every(handler => typeof handler === 'function')) {\n\t\t\tconsole.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex(check => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tconsole.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class TabSections {\n\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"e91c54a0a2f8bb5ed755\",\"2441\":\"2c050d23f9070dfa7f03\",\"4589\":\"55861ddae6afc02f82cc\",\"5862\":\"142cd48ca8ec32e57725\",\"6227\":\"3494381758c4754ef3f5\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(69196)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","console","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalLinkActions","actions","registerAction","action","OC","warn","icon","name","url","ExternalShareActions","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","TabInstance","addEventListener","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","fileInfo","context","SharingTab","default","View","extend","$destroy","parent","update","$mount","destroy","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index b936e6d6968..f15d4e2d55f 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -321,6 +321,7 @@ return array( 'OCP\\DirectEditing\\IToken' => $baseDir . '/lib/public/DirectEditing/IToken.php', 'OCP\\DirectEditing\\RegisterDirectEditorEvent' => $baseDir . '/lib/public/DirectEditing/RegisterDirectEditorEvent.php', 'OCP\\Encryption\\Exceptions\\GenericEncryptionException' => $baseDir . '/lib/public/Encryption/Exceptions/GenericEncryptionException.php', + 'OCP\\Encryption\\Exceptions\\InvalidHeaderException' => $baseDir . '/lib/public/Encryption/Exceptions/InvalidHeaderException.php', 'OCP\\Encryption\\IEncryptionModule' => $baseDir . '/lib/public/Encryption/IEncryptionModule.php', 'OCP\\Encryption\\IFile' => $baseDir . '/lib/public/Encryption/IFile.php', 'OCP\\Encryption\\IManager' => $baseDir . '/lib/public/Encryption/IManager.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 02284310e01..dfb238acbf3 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -362,6 +362,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OCP\\DirectEditing\\IToken' => __DIR__ . '/../../..' . '/lib/public/DirectEditing/IToken.php', 'OCP\\DirectEditing\\RegisterDirectEditorEvent' => __DIR__ . '/../../..' . '/lib/public/DirectEditing/RegisterDirectEditorEvent.php', 'OCP\\Encryption\\Exceptions\\GenericEncryptionException' => __DIR__ . '/../../..' . '/lib/public/Encryption/Exceptions/GenericEncryptionException.php', + 'OCP\\Encryption\\Exceptions\\InvalidHeaderException' => __DIR__ . '/../../..' . '/lib/public/Encryption/Exceptions/InvalidHeaderException.php', 'OCP\\Encryption\\IEncryptionModule' => __DIR__ . '/../../..' . '/lib/public/Encryption/IEncryptionModule.php', 'OCP\\Encryption\\IFile' => __DIR__ . '/../../..' . '/lib/public/Encryption/IFile.php', 'OCP\\Encryption\\IManager' => __DIR__ . '/../../..' . '/lib/public/Encryption/IManager.php', diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 2d101052cf5..aa926c96d4f 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -133,7 +133,7 @@ OC.L10N.register( "View %s on the fediverse" : "Zeige %s auf dem Fediverse", "Phone" : "Telefon", "Call %s" : "%s anrufen", - "Twitter" : "Twitter", + "Twitter" : "X", "View %s on Twitter" : "%s auf Twitter anzeigen", "Website" : "Webseite", "Visit %s" : "%s besuchen", @@ -273,7 +273,7 @@ OC.L10N.register( "A valid Login must be provided" : "Ein gültiger Anmeldename muss angegeben werden.", "Login contains whitespace at the beginning or at the end" : "Anmeldename enthält Leerzeichen am Anfang oder am Ende", "Login must not consist of dots only" : "Der Anmeldename darf nicht nur aus Punkten bestehen", - "Login is too long" : "Die Anmeldung dauert zu lange", + "Login is too long" : "Der Kontenname ist zu lang", "Login is invalid because files already exist for this user" : "Der Anmeldename ist ungültig, da bereits Dateien von diesem Benutzer existieren", "Account disabled" : "Konto deaktiviert", "Login canceled by app" : "Anmeldung durch die App abgebrochen", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index ea316cb1060..f23493df570 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -131,7 +131,7 @@ "View %s on the fediverse" : "Zeige %s auf dem Fediverse", "Phone" : "Telefon", "Call %s" : "%s anrufen", - "Twitter" : "Twitter", + "Twitter" : "X", "View %s on Twitter" : "%s auf Twitter anzeigen", "Website" : "Webseite", "Visit %s" : "%s besuchen", @@ -271,7 +271,7 @@ "A valid Login must be provided" : "Ein gültiger Anmeldename muss angegeben werden.", "Login contains whitespace at the beginning or at the end" : "Anmeldename enthält Leerzeichen am Anfang oder am Ende", "Login must not consist of dots only" : "Der Anmeldename darf nicht nur aus Punkten bestehen", - "Login is too long" : "Die Anmeldung dauert zu lange", + "Login is too long" : "Der Kontenname ist zu lang", "Login is invalid because files already exist for this user" : "Der Anmeldename ist ungültig, da bereits Dateien von diesem Benutzer existieren", "Account disabled" : "Konto deaktiviert", "Login canceled by app" : "Anmeldung durch die App abgebrochen", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index 93782960c94..2494ab4aca4 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -201,6 +201,7 @@ OC.L10N.register( "Path is already shared with this group" : "Path is already shared with this group", "Link sharing is not allowed" : "Link sharing is not allowed", "Public upload is not allowed" : "Public upload is not allowed", + "You cannot share a folder that contains other shares" : "You cannot share a folder that contains other shares", "Sharing is disabled" : "Sharing is disabled", "Sharing is disabled for you" : "Sharing is disabled for you", "Cannot share with the share owner" : "Cannot share with the share owner", @@ -272,6 +273,7 @@ OC.L10N.register( "A valid Login must be provided" : "A valid Login must be provided", "Login contains whitespace at the beginning or at the end" : "Login contains whitespace at the beginning or at the end", "Login must not consist of dots only" : "Login must not consist of dots only", + "Login is too long" : "Login is too long", "Login is invalid because files already exist for this user" : "Login is invalid because files already exist for this user", "Account disabled" : "Account disabled", "Login canceled by app" : "Login cancelled by app", @@ -362,6 +364,11 @@ OC.L10N.register( "How many images to generate" : "How many images to generate", "Output images" : "Output images", "The generated images" : "The generated images", + "Generate speech" : "Generate speech", + "Generate speech from a transcript" : "Generate speech from a transcript", + "Write transcript that you want the assistant to generate speech from" : "Write transcript that you want the assistant to generate speech from", + "Output speech" : "Output speech", + "The generated speech" : "The generated speech", "Free text to text prompt" : "Free text to text prompt", "Runs an arbitrary prompt through a language model that returns a reply" : "Runs an arbitrary prompt through a language model that returns a reply", "Describe a task that you want the assistant to do or ask a question" : "Describe a task that you want the assistant to do or ask a question", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index 40402118ddf..08e84f39af1 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -199,6 +199,7 @@ "Path is already shared with this group" : "Path is already shared with this group", "Link sharing is not allowed" : "Link sharing is not allowed", "Public upload is not allowed" : "Public upload is not allowed", + "You cannot share a folder that contains other shares" : "You cannot share a folder that contains other shares", "Sharing is disabled" : "Sharing is disabled", "Sharing is disabled for you" : "Sharing is disabled for you", "Cannot share with the share owner" : "Cannot share with the share owner", @@ -270,6 +271,7 @@ "A valid Login must be provided" : "A valid Login must be provided", "Login contains whitespace at the beginning or at the end" : "Login contains whitespace at the beginning or at the end", "Login must not consist of dots only" : "Login must not consist of dots only", + "Login is too long" : "Login is too long", "Login is invalid because files already exist for this user" : "Login is invalid because files already exist for this user", "Account disabled" : "Account disabled", "Login canceled by app" : "Login cancelled by app", @@ -360,6 +362,11 @@ "How many images to generate" : "How many images to generate", "Output images" : "Output images", "The generated images" : "The generated images", + "Generate speech" : "Generate speech", + "Generate speech from a transcript" : "Generate speech from a transcript", + "Write transcript that you want the assistant to generate speech from" : "Write transcript that you want the assistant to generate speech from", + "Output speech" : "Output speech", + "The generated speech" : "The generated speech", "Free text to text prompt" : "Free text to text prompt", "Runs an arbitrary prompt through a language model that returns a reply" : "Runs an arbitrary prompt through a language model that returns a reply", "Describe a task that you want the assistant to do or ask a question" : "Describe a task that you want the assistant to do or ask a question", diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js index e14744dc6ee..7932c79256b 100644 --- a/lib/l10n/et_EE.js +++ b/lib/l10n/et_EE.js @@ -293,6 +293,7 @@ OC.L10N.register( "The audio to transcribe" : "Üleskirjutatav helifail", "Transcription" : "Üleskirjutus", "The transcribed text" : "Üleskirjutatud tekst", + "Confirmation" : "Kinnitus", "Context write" : "Kontekstuaalne kirjutamine", "Writes text in a given style based on the provided source material." : "Kirjutab etteantud lähtematerjali lausel teksti üles.", "Writing style" : "Kirjutamisstiil", diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json index f6c46ab05cb..99c9583bf87 100644 --- a/lib/l10n/et_EE.json +++ b/lib/l10n/et_EE.json @@ -291,6 +291,7 @@ "The audio to transcribe" : "Üleskirjutatav helifail", "Transcription" : "Üleskirjutus", "The transcribed text" : "Üleskirjutatud tekst", + "Confirmation" : "Kinnitus", "Context write" : "Kontekstuaalne kirjutamine", "Writes text in a given style based on the provided source material." : "Kirjutab etteantud lähtematerjali lausel teksti üles.", "Writing style" : "Kirjutamisstiil", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 213b78d5c28..0d9fd0cb98a 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -307,6 +307,7 @@ OC.L10N.register( "Chat" : "Rozmowa", "Chat history" : "Historia rozmów", "Generates a possible headline for a text." : "Generuje możliwy nagłówek tekstu.", + "Original text" : "Tekst oryginalny", "Text" : "Tekst", "Summarize" : "Podsumuj", "Summary" : "Podsumowanie", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 6837f941bb7..c97634e8eff 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -305,6 +305,7 @@ "Chat" : "Rozmowa", "Chat history" : "Historia rozmów", "Generates a possible headline for a text." : "Generuje możliwy nagłówek tekstu.", + "Original text" : "Tekst oryginalny", "Text" : "Tekst", "Summarize" : "Podsumuj", "Summary" : "Podsumowanie", diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js index 7a98e4b4905..a85c29e400c 100644 --- a/lib/l10n/zh_HK.js +++ b/lib/l10n/zh_HK.js @@ -201,6 +201,7 @@ OC.L10N.register( "Path is already shared with this group" : "已與此群組分享了路徑", "Link sharing is not allowed" : "不允許連結分享", "Public upload is not allowed" : "不允許公開上傳", + "You cannot share a folder that contains other shares" : "您無法分享包含其他分享的資料夾", "Sharing is disabled" : "已停用分享", "Sharing is disabled for you" : "您已停用分享", "Cannot share with the share owner" : "無法與分享擁有者分享", @@ -272,6 +273,7 @@ OC.L10N.register( "A valid Login must be provided" : "必須提供有效帳戶", "Login contains whitespace at the beginning or at the end" : "帳戶的開頭或結尾有空白", "Login must not consist of dots only" : "帳戶不能只包含小數點", + "Login is too long" : "帳號太長了", "Login is invalid because files already exist for this user" : "帳戶無效,因為此用戶的檔案已經存在", "Account disabled" : "帳戶已停用", "Login canceled by app" : "登入已被應用程式取消", @@ -362,6 +364,11 @@ OC.L10N.register( "How many images to generate" : "要產生多少圖像", "Output images" : "輸出圖像", "The generated images" : "產生的圖像", + "Generate speech" : "產生語音", + "Generate speech from a transcript" : "從文字稿産生語音", + "Write transcript that you want the assistant to generate speech from" : "寫下您想要小幫手產生語音的文字稿", + "Output speech" : "輸出語音", + "The generated speech" : "產生的語音", "Free text to text prompt" : "文字提示的自由文字", "Runs an arbitrary prompt through a language model that returns a reply" : "透過回傳回覆的語言模型執行任意提示", "Describe a task that you want the assistant to do or ask a question" : "描述您希望助理執行的任務或提出問題", diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json index 94658c90974..b58db1e510c 100644 --- a/lib/l10n/zh_HK.json +++ b/lib/l10n/zh_HK.json @@ -199,6 +199,7 @@ "Path is already shared with this group" : "已與此群組分享了路徑", "Link sharing is not allowed" : "不允許連結分享", "Public upload is not allowed" : "不允許公開上傳", + "You cannot share a folder that contains other shares" : "您無法分享包含其他分享的資料夾", "Sharing is disabled" : "已停用分享", "Sharing is disabled for you" : "您已停用分享", "Cannot share with the share owner" : "無法與分享擁有者分享", @@ -270,6 +271,7 @@ "A valid Login must be provided" : "必須提供有效帳戶", "Login contains whitespace at the beginning or at the end" : "帳戶的開頭或結尾有空白", "Login must not consist of dots only" : "帳戶不能只包含小數點", + "Login is too long" : "帳號太長了", "Login is invalid because files already exist for this user" : "帳戶無效,因為此用戶的檔案已經存在", "Account disabled" : "帳戶已停用", "Login canceled by app" : "登入已被應用程式取消", @@ -360,6 +362,11 @@ "How many images to generate" : "要產生多少圖像", "Output images" : "輸出圖像", "The generated images" : "產生的圖像", + "Generate speech" : "產生語音", + "Generate speech from a transcript" : "從文字稿産生語音", + "Write transcript that you want the assistant to generate speech from" : "寫下您想要小幫手產生語音的文字稿", + "Output speech" : "輸出語音", + "The generated speech" : "產生的語音", "Free text to text prompt" : "文字提示的自由文字", "Runs an arbitrary prompt through a language model that returns a reply" : "透過回傳回覆的語言模型執行任意提示", "Describe a task that you want the assistant to do or ask a question" : "描述您希望助理執行的任務或提出問題", diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php index ba23f3c43ec..bdaba57687a 100644 --- a/lib/private/Files/Storage/Wrapper/Encryption.php +++ b/lib/private/Files/Storage/Wrapper/Encryption.php @@ -18,6 +18,7 @@ use OC\Files\Storage\Common; use OC\Files\Storage\LocalTempFileTrait; use OC\Memcache\ArrayCache; use OCP\Cache\CappedMemoryCache; +use OCP\Encryption\Exceptions\InvalidHeaderException; use OCP\Encryption\IFile; use OCP\Encryption\IManager; use OCP\Encryption\Keys\IStorage; @@ -344,6 +345,16 @@ class Encryption extends Wrapper { if ($shouldEncrypt === true && $encryptionModule !== null) { $this->encryptedPaths->set($this->util->stripPartialFileExtension($path), true); $headerSize = $this->getHeaderSize($path); + if ($mode === 'r' && $headerSize === 0) { + $firstBlock = $this->readFirstBlock($path); + if (!$firstBlock) { + throw new InvalidHeaderException("Unable to get header block for $path"); + } elseif (!str_starts_with($firstBlock, Util::HEADER_START)) { + throw new InvalidHeaderException("Unable to get header size for $path, file doesn't start with encryption header"); + } else { + throw new InvalidHeaderException("Unable to get header size for $path, even though file does start with encryption header"); + } + } $source = $this->storage->fopen($path, $mode); if (!is_resource($source)) { return false; @@ -894,4 +905,16 @@ class Encryption extends Wrapper { public function setEnabled(bool $enabled): void { $this->enabled = $enabled; } + + /** + * Check if the on-disk data for a file has a valid encrypted header + * + * @param string $path + * @return bool + */ + public function hasValidHeader(string $path): bool { + $firstBlock = $this->readFirstBlock($path); + $header = $this->util->parseRawHeader($firstBlock); + return (count($header) > 0); + } } diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php index 3be77ba1b37..35a265f8c8e 100644 --- a/lib/private/Files/Storage/Wrapper/Quota.php +++ b/lib/private/Files/Storage/Wrapper/Quota.php @@ -21,6 +21,7 @@ class Quota extends Wrapper { protected string $sizeRoot; private SystemConfig $config; private bool $quotaIncludeExternalStorage; + private bool $enabled = true; /** * @param array $parameters @@ -46,6 +47,9 @@ class Quota extends Wrapper { } private function hasQuota(): bool { + if (!$this->enabled) { + return false; + } return $this->getQuota() !== FileInfo::SPACE_UNLIMITED; } @@ -197,4 +201,8 @@ class Quota extends Wrapper { return parent::touch($path, $mtime); } + + public function enableQuota(bool $enabled): void { + $this->enabled = $enabled; + } } diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index f17ced1611b..e49043355e8 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -10,6 +10,7 @@ namespace OC\Files; use Icewind\Streams\CallbackWrapper; use OC\Files\Mount\MoveableMount; use OC\Files\Storage\Storage; +use OC\Files\Storage\Wrapper\Quota; use OC\Share\Share; use OC\User\LazyUser; use OC\User\Manager as UserManager; @@ -1578,12 +1579,22 @@ class View { // Create parent folders if the mountpoint is inside a subfolder that doesn't exist yet if (!isset($files[$entryName])) { try { + [$storage, ] = $this->resolvePath($path . '/' . $entryName); + // make sure we can create the mountpoint folder, even if the user has a quota of 0 + if ($storage->instanceOfStorage(Quota::class)) { + $storage->enableQuota(false); + } + if ($this->mkdir($path . '/' . $entryName) !== false) { $info = $this->getFileInfo($path . '/' . $entryName); if ($info !== false) { $files[$entryName] = $info; } } + + if ($storage->instanceOfStorage(Quota::class)) { + $storage->enableQuota(true); + } } catch (\Exception $e) { // Creating the parent folder might not be possible, for example due to a lack of permissions. $this->logger->debug('Failed to create non-existent parent', ['exception' => $e, 'path' => $path . '/' . $entryName]); diff --git a/lib/public/Encryption/Exceptions/InvalidHeaderException.php b/lib/public/Encryption/Exceptions/InvalidHeaderException.php new file mode 100644 index 00000000000..f7213577fb6 --- /dev/null +++ b/lib/public/Encryption/Exceptions/InvalidHeaderException.php @@ -0,0 +1,17 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCP\Encryption\Exceptions; + +use OCP\HintException; + +/** + * Class InvalidHeaderException + * + * @since 32.0.0 + */ +class InvalidHeaderException extends HintException { +} diff --git a/package-lock.json b/package-lock.json index c5b48b8c237..22e53aa509f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -109,7 +109,7 @@ "@types/dockerode": "^3.3.38", "@types/wait-on": "^5.3.4", "@vitejs/plugin-vue2": "^2.3.3", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^3.1.3", "@vue/test-utils": "^1.3.5", "@vue/tsconfig": "^0.5.1", "@zip.js/zip.js": "^2.7.60", @@ -6776,9 +6776,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.2.tgz", - "integrity": "sha512-XDdaDOeaTMAMYW7N63AqoK32sYUWbXnTkC6tEbVcu3RlU1bB9of32T+PGf8KZvxqLNqeXhafDFqCkwpf2+dyaQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.3.tgz", + "integrity": "sha512-cj76U5gXCl3g88KSnf80kof6+6w+K4BjOflCl7t6yRJPDuCrHtVu0SgNYOUARJOL5TI8RScDbm5x4s1/P9bvpw==", "dev": true, "license": "MIT", "dependencies": { @@ -6799,8 +6799,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.1.2", - "vitest": "3.1.2" + "@vitest/browser": "3.1.3", + "vitest": "3.1.3" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -6891,14 +6891,14 @@ } }, "node_modules/@vitest/expect": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.2.tgz", - "integrity": "sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.3.tgz", + "integrity": "sha512-7FTQQuuLKmN1Ig/h+h/GO+44Q1IlglPlR2es4ab7Yvfx+Uk5xsv+Ykk+MEt/M2Yn/xGmzaLKxGw2lgy2bwuYqg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.2", - "@vitest/utils": "3.1.2", + "@vitest/spy": "3.1.3", + "@vitest/utils": "3.1.3", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -6907,13 +6907,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.2.tgz", - "integrity": "sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.3.tgz", + "integrity": "sha512-PJbLjonJK82uCWHjzgBJZuR7zmAOrSvKk1QBxrennDIgtH4uK0TB1PvYmc0XBCigxxtiAVPfWtAdy4lpz8SQGQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.2", + "@vitest/spy": "3.1.3", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -6944,9 +6944,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.2.tgz", - "integrity": "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.3.tgz", + "integrity": "sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==", "dev": true, "license": "MIT", "dependencies": { @@ -6957,13 +6957,13 @@ } }, "node_modules/@vitest/runner": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.2.tgz", - "integrity": "sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.3.tgz", + "integrity": "sha512-Tae+ogtlNfFei5DggOsSUvkIaSuVywujMj6HzR97AHK6XK8i3BuVyIifWAm/sE3a15lF5RH9yQIrbXYuo0IFyA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.1.2", + "@vitest/utils": "3.1.3", "pathe": "^2.0.3" }, "funding": { @@ -6971,13 +6971,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.2.tgz", - "integrity": "sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.3.tgz", + "integrity": "sha512-XVa5OPNTYUsyqG9skuUkFzAeFnEzDp8hQu7kZ0N25B1+6KjGm4hWLtURyBbsIAOekfWQ7Wuz/N/XXzgYO3deWQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.2", + "@vitest/pretty-format": "3.1.3", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -6986,9 +6986,9 @@ } }, "node_modules/@vitest/spy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.2.tgz", - "integrity": "sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.3.tgz", + "integrity": "sha512-x6w+ctOEmEXdWaa6TO4ilb7l9DxPR5bwEb6hILKuxfU1NqWT2mpJD9NJN7t3OTfxmVlOMrvtoFJGdgyzZ605lQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6999,13 +6999,13 @@ } }, "node_modules/@vitest/utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.2.tgz", - "integrity": "sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.3.tgz", + "integrity": "sha512-2Ltrpht4OmHO9+c/nmHtF09HWiyWdworqnHIwjfvDyWjuwKbdkcS9AnhsDn+8E2RM4x++foD1/tNuLPVvWG1Rg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.2", + "@vitest/pretty-format": "3.1.3", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -12029,9 +12029,9 @@ "license": "MIT" }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, @@ -25367,15 +25367,15 @@ } }, "node_modules/vite-node": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.2.tgz", - "integrity": "sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.3.tgz", + "integrity": "sha512-uHV4plJ2IxCl4u1up1FQRrqclylKAogbtBfOTwcuJ28xFi+89PZ57BRh+naIRvH70HPwxy5QHYzg1OrEaC7AbA==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", - "es-module-lexer": "^1.6.0", + "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0" }, @@ -25483,19 +25483,19 @@ } }, "node_modules/vitest": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.2.tgz", - "integrity": "sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.3.tgz", + "integrity": "sha512-188iM4hAHQ0km23TN/adso1q5hhwKqUpv+Sd6p5sOuh6FhQnRNW3IsiIpvxqahtBabsJ2SLZgmGSpcYK4wQYJw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "3.1.2", - "@vitest/mocker": "3.1.2", - "@vitest/pretty-format": "^3.1.2", - "@vitest/runner": "3.1.2", - "@vitest/snapshot": "3.1.2", - "@vitest/spy": "3.1.2", - "@vitest/utils": "3.1.2", + "@vitest/expect": "3.1.3", + "@vitest/mocker": "3.1.3", + "@vitest/pretty-format": "^3.1.3", + "@vitest/runner": "3.1.3", + "@vitest/snapshot": "3.1.3", + "@vitest/spy": "3.1.3", + "@vitest/utils": "3.1.3", "chai": "^5.2.0", "debug": "^4.4.0", "expect-type": "^1.2.1", @@ -25508,7 +25508,7 @@ "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.1.2", + "vite-node": "3.1.3", "why-is-node-running": "^2.3.0" }, "bin": { @@ -25524,8 +25524,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.1.2", - "@vitest/ui": "3.1.2", + "@vitest/browser": "3.1.3", + "@vitest/ui": "3.1.3", "happy-dom": "*", "jsdom": "*" }, diff --git a/package.json b/package.json index 693e4da5934..4f6e69a7d52 100644 --- a/package.json +++ b/package.json @@ -140,7 +140,7 @@ "@types/dockerode": "^3.3.38", "@types/wait-on": "^5.3.4", "@vitejs/plugin-vue2": "^2.3.3", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^3.1.3", "@vue/test-utils": "^1.3.5", "@vue/tsconfig": "^0.5.1", "@zip.js/zip.js": "^2.7.60", diff --git a/tests/databases-all-config.php b/tests/databases-all-config.php new file mode 100644 index 00000000000..bf5035fe6d5 --- /dev/null +++ b/tests/databases-all-config.php @@ -0,0 +1,14 @@ +<?php +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +$CONFIG = [ + 'supportedDatabases' => [ + 'sqlite', + 'mysql', + 'pgsql', + 'oci', + ], +]; |