diff options
184 files changed, 953 insertions, 266 deletions
diff --git a/.github/workflows/object-storage-azure.yml b/.github/workflows/object-storage-azure.yml index d98aa582168..e9c0b528267 100644 --- a/.github/workflows/object-storage-azure.yml +++ b/.github/workflows/object-storage-azure.yml @@ -99,7 +99,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit env: diff --git a/.github/workflows/object-storage-s3.yml b/.github/workflows/object-storage-s3.yml index 84f053211b5..d7208bae984 100644 --- a/.github/workflows/object-storage-s3.yml +++ b/.github/workflows/object-storage-s3.yml @@ -100,7 +100,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: Wait for S3 run: | diff --git a/.github/workflows/object-storage-swift.yml b/.github/workflows/object-storage-swift.yml index a31378d6762..1905afc7c32 100644 --- a/.github/workflows/object-storage-swift.yml +++ b/.github/workflows/object-storage-swift.yml @@ -96,7 +96,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit env: diff --git a/.github/workflows/phpunit-32bits.yml b/.github/workflows/phpunit-32bits.yml index d003022a7be..4d1e73ce990 100644 --- a/.github/workflows/phpunit-32bits.yml +++ b/.github/workflows/phpunit-32bits.yml @@ -7,6 +7,7 @@ on: paths: - 'version.php' - '.github/workflows/phpunit-32bits.yml' + - 'tests/phpunit-autotest.xml' workflow_dispatch: schedule: - cron: "15 1 * * 1-6" @@ -47,7 +48,7 @@ jobs: uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0 with: php-version: ${{ matrix.php-versions }} - extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap coverage: none ini-file: development ini-values: @@ -55,14 +56,16 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Set up dependencies + run: composer i + - name: Set up Nextcloud env: DB_PORT: 4444 run: | - composer install mkdir data ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f index.php + php -f tests/enable_all.php - name: PHPUnit run: composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness diff --git a/.github/workflows/phpunit-mariadb.yml b/.github/workflows/phpunit-mariadb.yml index 159f87ba465..6b8b56077ad 100644 --- a/.github/workflows/phpunit-mariadb.yml +++ b/.github/workflows/phpunit-mariadb.yml @@ -122,7 +122,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} diff --git a/.github/workflows/phpunit-memcached.yml b/.github/workflows/phpunit-memcached.yml index ebd866b15cb..a83dac8e65b 100644 --- a/.github/workflows/phpunit-memcached.yml +++ b/.github/workflows/phpunit-memcached.yml @@ -96,7 +96,7 @@ jobs: mkdir data cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit memcached tests run: composer run test -- --group Memcache,Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }} diff --git a/.github/workflows/phpunit-mysql-sharding.yml b/.github/workflows/phpunit-mysql-sharding.yml index 4a9f115a5cc..4de4265488a 100644 --- a/.github/workflows/phpunit-mysql-sharding.yml +++ b/.github/workflows/phpunit-mysql-sharding.yml @@ -154,7 +154,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml index 7643b1dcd37..5ee5c3641e2 100644 --- a/.github/workflows/phpunit-mysql.yml +++ b/.github/workflows/phpunit-mysql.yml @@ -122,7 +122,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} diff --git a/.github/workflows/phpunit-nodb.yml b/.github/workflows/phpunit-nodb.yml index 777c3a4284a..38062fb8691 100644 --- a/.github/workflows/phpunit-nodb.yml +++ b/.github/workflows/phpunit-nodb.yml @@ -102,7 +102,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit nodb testsuite run: composer run test -- --exclude-group DB,SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }} diff --git a/.github/workflows/phpunit-object-store-primary.yml b/.github/workflows/phpunit-object-store-primary.yml index 03e442eecad..88316d13b2e 100644 --- a/.github/workflows/phpunit-object-store-primary.yml +++ b/.github/workflows/phpunit-object-store-primary.yml @@ -95,7 +95,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: Wait for S3 run: | diff --git a/.github/workflows/phpunit-oci.yml b/.github/workflows/phpunit-oci.yml index 928c715aa90..12f4c466168 100644 --- a/.github/workflows/phpunit-oci.yml +++ b/.github/workflows/phpunit-oci.yml @@ -126,7 +126,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=oci --database-name=${{ matrix.oracle-versions < 23 && 'XE' || 'FREE' }} --database-host=127.0.0.1 --database-port=1521 --database-user=system --database-pass=oracle --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml index 0fe4d07fbb2..82f29bdaa1f 100644 --- a/.github/workflows/phpunit-pgsql.yml +++ b/.github/workflows/phpunit-pgsql.yml @@ -117,7 +117,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: PHPUnit database tests run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml index 57324cbc10c..706bb3048b6 100644 --- a/.github/workflows/phpunit-sqlite.yml +++ b/.github/workflows/phpunit-sqlite.yml @@ -100,7 +100,7 @@ jobs: cp tests/redis.config.php config/ cp tests/preseed-config.php config/config.php ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin - php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0 + php -f tests/enable_all.php - name: Nextcloud debug information run: ./occ app:list && echo "======= System config =======" && ./occ config:list system diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index 1c6de8f18cf..3ba68d336ed 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -301,6 +301,14 @@ OC.L10N.register( "Reset to default" : "Auf Standard zurücksetzen ", "Import contacts" : "Kontakte importieren", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?", + "Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden", + "Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden", + "Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert", + "Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden", + "Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht", + "Import calendar event" : "Kalenderereignis importieren", + "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.", + "Upload event" : "Ereignis hochladen", "Availability" : "Verfügbarkeit", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.", "Absence" : "Abwesenheit", @@ -317,6 +325,8 @@ OC.L10N.register( "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden", "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", + "Example content" : "Beispielsinhalt", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.", "There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.", "Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.", "Are you accepting the invitation?" : "Die Einladung annehmen?", diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index bd3269672bd..c152c3aa8cc 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -299,6 +299,14 @@ "Reset to default" : "Auf Standard zurücksetzen ", "Import contacts" : "Kontakte importieren", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?", + "Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden", + "Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden", + "Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert", + "Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden", + "Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht", + "Import calendar event" : "Kalenderereignis importieren", + "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.", + "Upload event" : "Ereignis hochladen", "Availability" : "Verfügbarkeit", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.", "Absence" : "Abwesenheit", @@ -315,6 +323,8 @@ "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden", "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", + "Example content" : "Beispielsinhalt", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.", "There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.", "Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.", "Are you accepting the invitation?" : "Die Einladung annehmen?", diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js index d6e90925eed..efdf32b9c34 100644 --- a/apps/dav/l10n/de_DE.js +++ b/apps/dav/l10n/de_DE.js @@ -301,6 +301,14 @@ OC.L10N.register( "Reset to default" : "Auf Standard zurücksetzen ", "Import contacts" : "Kontakte importieren", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?", + "Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden", + "Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden", + "Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert", + "Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden", + "Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht", + "Import calendar event" : "Kalendertermin importieren", + "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.", + "Upload event" : "Termin hochladen", "Availability" : "Verfügbarkeit", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.", "Absence" : "Abwesenheit", @@ -317,6 +325,8 @@ OC.L10N.register( "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden", "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", + "Example content" : "Beispielsinhalt", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.", "There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.", "Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.", "Are you accepting the invitation?" : "Die Einladung annehmen?", diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json index 8274d130006..7170849d1a9 100644 --- a/apps/dav/l10n/de_DE.json +++ b/apps/dav/l10n/de_DE.json @@ -299,6 +299,14 @@ "Reset to default" : "Auf Standard zurücksetzen ", "Import contacts" : "Kontakte importieren", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?", + "Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden", + "Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden", + "Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert", + "Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden", + "Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht", + "Import calendar event" : "Kalendertermin importieren", + "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.", + "Upload event" : "Termin hochladen", "Availability" : "Verfügbarkeit", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.", "Absence" : "Abwesenheit", @@ -315,6 +323,8 @@ "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden", "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", + "Example content" : "Beispielsinhalt", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.", "There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.", "Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.", "Are you accepting the invitation?" : "Die Einladung annehmen?", diff --git a/apps/dav/l10n/ru.js b/apps/dav/l10n/ru.js index e09f09bc4c1..e170bb36582 100644 --- a/apps/dav/l10n/ru.js +++ b/apps/dav/l10n/ru.js @@ -72,7 +72,77 @@ OC.L10N.register( "Description: %s" : "Описание: %s", "Where: %s" : "Где: %s", "%1$s via %2$s" : "%1$s через %2$s", + "In the past on %1$s for the entire day" : "В прошлом, %1$s, в течение всего дня", + "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Через минуту, %1$s, в течение всего дня","Через %n минуты, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня"], + "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Через час, %1$s, в течение всего дня","Через %n часа, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня"], + "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Через день, %1$s, в течение всего дня","Через %n дня, %1$s, в течение всего дня","Через %n дней,%1$s, в течение всего дня","Через %n дней, %1$s, в течение всего дня"], + "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Через неделю, %1$s, в течение всего дня","Через %n недели, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня"], + "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Через месяц, %1$s, в течение всего дня","Через %n месяца, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня"], + "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Через год, %1$s, в течение всего дня","Через %n года, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня"], + "In the past on %1$s between %2$s - %3$s" : "В прошлом, %1$s, с %2$s до %3$s", + "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Через минуту, %1$s, с %2$s до %3$s","Через %n минуты, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s"], + "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Через час, %1$s, с %2$s до %3$s","Через %n часа, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s"], + "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Через день, %1$s, с %2$s до %3$s","Через %n дня %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s"], + "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Через неделю, %1$s, с %2$s до %3$s","Через %n недели, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s"], + "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Через месяц, %1$s, с %2$s до %3$s","Через %n месяца, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s"], + "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Через год, %1$s, с %2$s до %3$s","Через %n года, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s"], + "Could not generate when statement" : "Не удалось сгенерировать выражение времени", "Every Day for the entire day" : "Каждый день в течение всего дня", + "Every Day for the entire day until %1$s" : "Каждый день весь день до %1$s", + "Every Day between %1$s - %2$s" : "Каждый день с %1$s по %2$s", + "Every Day between %1$s - %2$s until %3$s" : "Каждый день с %1$s до %2$s до %3$s", + "Every %1$d Days for the entire day" : "Каждые %1$d дней в течение всего дня", + "Every %1$d Days for the entire day until %2$s" : "Каждые %1$d дней в течение всего дня до %2$s", + "Every %1$d Days between %2$s - %3$s" : "Каждые %1$d дней с %2$s до %3$s", + "Every %1$d Days between %2$s - %3$s until %4$s" : "Каждые %1$d дней с %2$s до %3$s до %4$s", + "Could not generate event recurrence statement" : "Не удалось сгенерировать правило повторения события", + "Every Week on %1$s for the entire day" : "Каждую неделю в %1$s в течение всего дня", + "Every Week on %1$s for the entire day until %2$s" : "Каждую неделю по %1$s в течение всего дня до %2$s", + "Every Week on %1$s between %2$s - %3$s" : "Каждую неделю в %1$s с %2$s до %3$s", + "Every Week on %1$s between %2$s - %3$s until %4$s" : "Каждую неделю по %1$s с %2$s до %3$s до %4$s", + "Every %1$d Weeks on %2$s for the entire day" : "Каждые %1$d недель по %2$s в течение всего дня", + "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Каждые %1$d недель по %2$s в течение всего дня до %3$s", + "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s", + "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s до %5$s", + "Every Month on the %1$s for the entire day" : "Каждый месяц %1$s в течение всего дня", + "Every Month on the %1$s for the entire day until %2$s" : "Каждый месяц %1$s в течение всего дня до %2$s", + "Every Month on the %1$s between %2$s - %3$s" : "Каждый месяц %1$s с %2$s до %3$s", + "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Каждый месяц %1$s с %2$s до %3$s до %4$s", + "Every %1$d Months on the %2$s for the entire day" : "Каждые %1$d месяцев %2$s в течение всего дня", + "Every %1$d Months on the %2$s for the entire day until %3$s" : "Каждые %1$d месяцев %2$s в течение всего дня до %3$s", + "Every %1$d Months on the %2$s between %3$s - %4$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s", + "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s до %5$s", + "Every Year in %1$s on the %2$s for the entire day" : "Каждый год в %1$s %2$s в течение всего дня", + "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Каждый год в %1$s %2$s в течение всего дня до %3$s", + "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Каждый год в %1$s %2$s с %3$s до %4$s", + "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Каждый год в %1$s %2$s с %3$s до %4$s до %5$s", + "Every %1$d Years in %2$s on the %3$s for the entire day" : "Каждые %1$d лет в %2$s %3$s в течение всего дня", + "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Каждые %1$d лет в %2$s %3$s в течение всего дня до %4$s", + "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s", + "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s до %6$s", + "On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s", + "On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s", + "In the past on %1$s" : "В прошлом, %1$s", + "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"], + "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"], + "_In a day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"], + "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"], + "_In a month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"], + "_In a year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"], + "In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s", + "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"], + "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"], + "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"], + "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"], + "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"], + "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"], + "In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s", + "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"], + "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"], + "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"], + "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"], + "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"], + "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"], "Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения", "Cancelled: %1$s" : "Событие отменено: %1$s", "\"%1$s\" has been canceled" : "Событие «%1$s» отменено", @@ -119,10 +189,12 @@ OC.L10N.register( "Second" : "Второй", "Third" : "Третий", "Fourth" : "Четвертый", + "Fifth" : "Пятый", "Last" : "Последний", "Second Last" : "Предпоследний", - "Third Last" : "Третий по счету", - "Fourth Last" : "Четвертый по счету", + "Third Last" : "Третий с конца", + "Fourth Last" : "Четвёртый с конца", + "Fifth Last" : "Пятый с конца", "Contacts" : "Контакты", "{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»", "You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»", @@ -178,6 +250,9 @@ OC.L10N.register( "Completed on %s" : "Завершено %s", "Due on %s by %s" : "До %s %s", "Due on %s" : "До %s", + "System Address Book" : "Системная адресная книга", + "The system address book contains contact information for all users in your instance." : "Системная адресная книга содержит контактную информацию всех пользователей в вашем инстансе.", + "Enable System Address Book" : "Включить системную адресную книгу", "DAV system address book" : "Системная адресная книга DAV", "No outstanding DAV system address book sync." : "Синхронизация системной адресной книги DAV выполнена.", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Синхронизация системной адресной книги DAV ещё не запущена, поскольку в этом экземпляре более 1000 пользователей или произошла ошибка. Перезапустите синхронизацию вручную используя команду «occ dav:sync-system-addressbook».", @@ -218,7 +293,22 @@ OC.L10N.register( "Cancel" : "Отмена", "Import" : "Импортировать", "Error while saving settings" : "Ошибка при сохранении параметров", + "Contact reset successfully" : "Контакт успешно сброшен", + "Error while resetting contact" : "Ошибка при сбросе контакта", + "Contact imported successfully" : " Контакт успешно импортирован", + "Error while importing contact" : " Ошибка при импорте контакта", + "Import contact" : "Импортировать контакт", "Reset to default" : "Сбросить изменения", + "Import contacts" : "Импортировать контакты", + "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Импорт нового файла .vcf удалит существующий контакт по умолчанию и заменит его новым. Продолжить?", + "Failed to save example event creation setting" : "Не удалось сохранить настройки создания примера события", + "Failed to upload the example event" : "Не удалось загрузить пример события", + "Custom example event was saved successfully" : "Настраиваемый пример события успешно сохранён", + "Failed to delete the custom example event" : "Не удалось удалить настраиваемый пример события", + "Custom example event was deleted successfully" : "Настраиваемый пример события успешно удалён", + "Import calendar event" : "Импортировать событие календаря", + "Uploading a new event will overwrite the existing one." : " Загрузка нового события перезапишет существующее.", + "Upload event" : "Загрузить событие", "Availability" : "Рабочее время", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Если вы настроите свой расписание работы, другие пользователи при планировании встреч смогут видеть, когда вас нет в офисе.", "Absence" : "Отсутствие", @@ -235,6 +325,8 @@ OC.L10N.register( "Send reminder notifications to calendar sharees as well" : "Отправлять напоминания всем пользователям, имеющим доступ к календарю", "Reminders are always sent to organizers and attendees." : "Организаторам и участникам уведомления отправляются во всех случаях.", "Enable notifications for events via push" : "Включить уведомления о событиях с помощью push", + "Example content" : "Пример содержимого", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Пример содержимого демонстрирует возможности Nextcloud. По умолчанию поставляется стандартное содержимое, которое можно заменить настраиваемым.", "There was an error updating your attendance status." : "Ошибка обновления статуса участия.", "Please contact the organizer directly." : "Обратитесь к организатору напрямую.", "Are you accepting the invitation?" : "Принять приглашение?", diff --git a/apps/dav/l10n/ru.json b/apps/dav/l10n/ru.json index f6e8329d5d7..d1da881a4c6 100644 --- a/apps/dav/l10n/ru.json +++ b/apps/dav/l10n/ru.json @@ -70,7 +70,77 @@ "Description: %s" : "Описание: %s", "Where: %s" : "Где: %s", "%1$s via %2$s" : "%1$s через %2$s", + "In the past on %1$s for the entire day" : "В прошлом, %1$s, в течение всего дня", + "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Через минуту, %1$s, в течение всего дня","Через %n минуты, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня"], + "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Через час, %1$s, в течение всего дня","Через %n часа, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня"], + "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Через день, %1$s, в течение всего дня","Через %n дня, %1$s, в течение всего дня","Через %n дней,%1$s, в течение всего дня","Через %n дней, %1$s, в течение всего дня"], + "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Через неделю, %1$s, в течение всего дня","Через %n недели, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня"], + "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Через месяц, %1$s, в течение всего дня","Через %n месяца, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня"], + "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Через год, %1$s, в течение всего дня","Через %n года, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня"], + "In the past on %1$s between %2$s - %3$s" : "В прошлом, %1$s, с %2$s до %3$s", + "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Через минуту, %1$s, с %2$s до %3$s","Через %n минуты, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s"], + "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Через час, %1$s, с %2$s до %3$s","Через %n часа, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s"], + "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Через день, %1$s, с %2$s до %3$s","Через %n дня %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s"], + "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Через неделю, %1$s, с %2$s до %3$s","Через %n недели, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s"], + "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Через месяц, %1$s, с %2$s до %3$s","Через %n месяца, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s"], + "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Через год, %1$s, с %2$s до %3$s","Через %n года, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s"], + "Could not generate when statement" : "Не удалось сгенерировать выражение времени", "Every Day for the entire day" : "Каждый день в течение всего дня", + "Every Day for the entire day until %1$s" : "Каждый день весь день до %1$s", + "Every Day between %1$s - %2$s" : "Каждый день с %1$s по %2$s", + "Every Day between %1$s - %2$s until %3$s" : "Каждый день с %1$s до %2$s до %3$s", + "Every %1$d Days for the entire day" : "Каждые %1$d дней в течение всего дня", + "Every %1$d Days for the entire day until %2$s" : "Каждые %1$d дней в течение всего дня до %2$s", + "Every %1$d Days between %2$s - %3$s" : "Каждые %1$d дней с %2$s до %3$s", + "Every %1$d Days between %2$s - %3$s until %4$s" : "Каждые %1$d дней с %2$s до %3$s до %4$s", + "Could not generate event recurrence statement" : "Не удалось сгенерировать правило повторения события", + "Every Week on %1$s for the entire day" : "Каждую неделю в %1$s в течение всего дня", + "Every Week on %1$s for the entire day until %2$s" : "Каждую неделю по %1$s в течение всего дня до %2$s", + "Every Week on %1$s between %2$s - %3$s" : "Каждую неделю в %1$s с %2$s до %3$s", + "Every Week on %1$s between %2$s - %3$s until %4$s" : "Каждую неделю по %1$s с %2$s до %3$s до %4$s", + "Every %1$d Weeks on %2$s for the entire day" : "Каждые %1$d недель по %2$s в течение всего дня", + "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Каждые %1$d недель по %2$s в течение всего дня до %3$s", + "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s", + "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s до %5$s", + "Every Month on the %1$s for the entire day" : "Каждый месяц %1$s в течение всего дня", + "Every Month on the %1$s for the entire day until %2$s" : "Каждый месяц %1$s в течение всего дня до %2$s", + "Every Month on the %1$s between %2$s - %3$s" : "Каждый месяц %1$s с %2$s до %3$s", + "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Каждый месяц %1$s с %2$s до %3$s до %4$s", + "Every %1$d Months on the %2$s for the entire day" : "Каждые %1$d месяцев %2$s в течение всего дня", + "Every %1$d Months on the %2$s for the entire day until %3$s" : "Каждые %1$d месяцев %2$s в течение всего дня до %3$s", + "Every %1$d Months on the %2$s between %3$s - %4$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s", + "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s до %5$s", + "Every Year in %1$s on the %2$s for the entire day" : "Каждый год в %1$s %2$s в течение всего дня", + "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Каждый год в %1$s %2$s в течение всего дня до %3$s", + "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Каждый год в %1$s %2$s с %3$s до %4$s", + "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Каждый год в %1$s %2$s с %3$s до %4$s до %5$s", + "Every %1$d Years in %2$s on the %3$s for the entire day" : "Каждые %1$d лет в %2$s %3$s в течение всего дня", + "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Каждые %1$d лет в %2$s %3$s в течение всего дня до %4$s", + "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s", + "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s до %6$s", + "On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s", + "On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s", + "In the past on %1$s" : "В прошлом, %1$s", + "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"], + "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"], + "_In a day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"], + "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"], + "_In a month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"], + "_In a year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"], + "In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s", + "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"], + "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"], + "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"], + "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"], + "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"], + "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"], + "In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s", + "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"], + "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"], + "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"], + "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"], + "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"], + "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"], "Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения", "Cancelled: %1$s" : "Событие отменено: %1$s", "\"%1$s\" has been canceled" : "Событие «%1$s» отменено", @@ -117,10 +187,12 @@ "Second" : "Второй", "Third" : "Третий", "Fourth" : "Четвертый", + "Fifth" : "Пятый", "Last" : "Последний", "Second Last" : "Предпоследний", - "Third Last" : "Третий по счету", - "Fourth Last" : "Четвертый по счету", + "Third Last" : "Третий с конца", + "Fourth Last" : "Четвёртый с конца", + "Fifth Last" : "Пятый с конца", "Contacts" : "Контакты", "{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»", "You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»", @@ -176,6 +248,9 @@ "Completed on %s" : "Завершено %s", "Due on %s by %s" : "До %s %s", "Due on %s" : "До %s", + "System Address Book" : "Системная адресная книга", + "The system address book contains contact information for all users in your instance." : "Системная адресная книга содержит контактную информацию всех пользователей в вашем инстансе.", + "Enable System Address Book" : "Включить системную адресную книгу", "DAV system address book" : "Системная адресная книга DAV", "No outstanding DAV system address book sync." : "Синхронизация системной адресной книги DAV выполнена.", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Синхронизация системной адресной книги DAV ещё не запущена, поскольку в этом экземпляре более 1000 пользователей или произошла ошибка. Перезапустите синхронизацию вручную используя команду «occ dav:sync-system-addressbook».", @@ -216,7 +291,22 @@ "Cancel" : "Отмена", "Import" : "Импортировать", "Error while saving settings" : "Ошибка при сохранении параметров", + "Contact reset successfully" : "Контакт успешно сброшен", + "Error while resetting contact" : "Ошибка при сбросе контакта", + "Contact imported successfully" : " Контакт успешно импортирован", + "Error while importing contact" : " Ошибка при импорте контакта", + "Import contact" : "Импортировать контакт", "Reset to default" : "Сбросить изменения", + "Import contacts" : "Импортировать контакты", + "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Импорт нового файла .vcf удалит существующий контакт по умолчанию и заменит его новым. Продолжить?", + "Failed to save example event creation setting" : "Не удалось сохранить настройки создания примера события", + "Failed to upload the example event" : "Не удалось загрузить пример события", + "Custom example event was saved successfully" : "Настраиваемый пример события успешно сохранён", + "Failed to delete the custom example event" : "Не удалось удалить настраиваемый пример события", + "Custom example event was deleted successfully" : "Настраиваемый пример события успешно удалён", + "Import calendar event" : "Импортировать событие календаря", + "Uploading a new event will overwrite the existing one." : " Загрузка нового события перезапишет существующее.", + "Upload event" : "Загрузить событие", "Availability" : "Рабочее время", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Если вы настроите свой расписание работы, другие пользователи при планировании встреч смогут видеть, когда вас нет в офисе.", "Absence" : "Отсутствие", @@ -233,6 +323,8 @@ "Send reminder notifications to calendar sharees as well" : "Отправлять напоминания всем пользователям, имеющим доступ к календарю", "Reminders are always sent to organizers and attendees." : "Организаторам и участникам уведомления отправляются во всех случаях.", "Enable notifications for events via push" : "Включить уведомления о событиях с помощью push", + "Example content" : "Пример содержимого", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Пример содержимого демонстрирует возможности Nextcloud. По умолчанию поставляется стандартное содержимое, которое можно заменить настраиваемым.", "There was an error updating your attendance status." : "Ошибка обновления статуса участия.", "Please contact the organizer directly." : "Обратитесь к организатору напрямую.", "Are you accepting the invitation?" : "Принять приглашение?", diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js index 4eb4c3ee271..feb1adde944 100644 --- a/apps/dav/l10n/sv.js +++ b/apps/dav/l10n/sv.js @@ -301,6 +301,14 @@ OC.L10N.register( "Reset to default" : "Återställ till grundinställningar", "Import contacts" : "Importera kontakter", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?", + "Failed to save example event creation setting" : "Kunde inte spara exemplet för inställning av händelseskapande", + "Failed to upload the example event" : "Kunde inte ladda upp exempelhändelsen", + "Custom example event was saved successfully" : "Anpassad exempelhändelse sparades", + "Failed to delete the custom example event" : "Kunde inte ta bort den anpassade exempelhändelsen", + "Custom example event was deleted successfully" : "Anpassad exempelhändelse har raderats", + "Import calendar event" : "Importera kalenderhändelse", + "Uploading a new event will overwrite the existing one." : "Om du laddar upp en ny händelse kommer den att skriva över den befintliga.", + "Upload event" : "Ladda upp händelse", "Availability" : "Din tillgänglighet", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstider kommer andra att se när du är frånvarande när de bokar ett möte.", "Absence" : "Frånvaro", @@ -317,6 +325,8 @@ OC.L10N.register( "Send reminder notifications to calendar sharees as well" : "Skicka även påminnelser till kalenderdeltagare", "Reminders are always sent to organizers and attendees." : "Påminnelser skickas alltid till arrangörer och deltagare.", "Enable notifications for events via push" : "Aktivera notiser för händelser via push", + "Example content" : "Exempelinnehåll", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Exempelinnehåll används för att visa upp funktionerna i Nextcloud. Standardinnehåll levereras med Nextcloud och kan ersättas med anpassat innehåll.", "There was an error updating your attendance status." : "Ett fel uppstod vid uppdatering av din närvarostatus.", "Please contact the organizer directly." : "Vänligen kontakta arrangören direkt.", "Are you accepting the invitation?" : "Acceptera inbjudan?", diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json index 617bbbc5a0e..0496461778f 100644 --- a/apps/dav/l10n/sv.json +++ b/apps/dav/l10n/sv.json @@ -299,6 +299,14 @@ "Reset to default" : "Återställ till grundinställningar", "Import contacts" : "Importera kontakter", "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?", + "Failed to save example event creation setting" : "Kunde inte spara exemplet för inställning av händelseskapande", + "Failed to upload the example event" : "Kunde inte ladda upp exempelhändelsen", + "Custom example event was saved successfully" : "Anpassad exempelhändelse sparades", + "Failed to delete the custom example event" : "Kunde inte ta bort den anpassade exempelhändelsen", + "Custom example event was deleted successfully" : "Anpassad exempelhändelse har raderats", + "Import calendar event" : "Importera kalenderhändelse", + "Uploading a new event will overwrite the existing one." : "Om du laddar upp en ny händelse kommer den att skriva över den befintliga.", + "Upload event" : "Ladda upp händelse", "Availability" : "Din tillgänglighet", "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstider kommer andra att se när du är frånvarande när de bokar ett möte.", "Absence" : "Frånvaro", @@ -315,6 +323,8 @@ "Send reminder notifications to calendar sharees as well" : "Skicka även påminnelser till kalenderdeltagare", "Reminders are always sent to organizers and attendees." : "Påminnelser skickas alltid till arrangörer och deltagare.", "Enable notifications for events via push" : "Aktivera notiser för händelser via push", + "Example content" : "Exempelinnehåll", + "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Exempelinnehåll används för att visa upp funktionerna i Nextcloud. Standardinnehåll levereras med Nextcloud och kan ersättas med anpassat innehåll.", "There was an error updating your attendance status." : "Ett fel uppstod vid uppdatering av din närvarostatus.", "Please contact the organizer directly." : "Vänligen kontakta arrangören direkt.", "Are you accepting the invitation?" : "Acceptera inbjudan?", diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js index bbf83d997a4..5a5f4b7fbf8 100644 --- a/apps/files/l10n/ar.js +++ b/apps/files/l10n/ar.js @@ -120,7 +120,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "ترويسات الأعمدة ذات الأزرار قابلة للترتيب.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "لم يتم عرض هذه القائمة بالكامل لأسباب تتعلق بالأداء. سيتم عرض الملفات تباعاً أثناء التنقل عبر القائمة.", "File not found" : "تعذر العثور على الملف", - "{count} selected" : "{count} تم تحديده", + "_{count} selected_::_{count} selected_" : ["{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده"], "{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة", "{used} of {quota} used" : "{used} من {quota} مستخدم", "{relative}% used" : "{relative}% مستخدمة", diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json index ba86b8a249b..53f25349af8 100644 --- a/apps/files/l10n/ar.json +++ b/apps/files/l10n/ar.json @@ -118,7 +118,7 @@ "Column headers with buttons are sortable." : "ترويسات الأعمدة ذات الأزرار قابلة للترتيب.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "لم يتم عرض هذه القائمة بالكامل لأسباب تتعلق بالأداء. سيتم عرض الملفات تباعاً أثناء التنقل عبر القائمة.", "File not found" : "تعذر العثور على الملف", - "{count} selected" : "{count} تم تحديده", + "_{count} selected_::_{count} selected_" : ["{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده"], "{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة", "{used} of {quota} used" : "{used} من {quota} مستخدم", "{relative}% used" : "{relative}% مستخدمة", diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js index d9bdbf9b621..9c28dace36c 100644 --- a/apps/files/l10n/ast.js +++ b/apps/files/l10n/ast.js @@ -90,7 +90,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Les testeres de les columnes con botones puen ordenase.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta llista nun ta completa por motivos de rindimientu. Los ficheros van apaecer a midida que navegues pela llista.", "File not found" : "Nun s'atopó'l ficheru", - "{count} selected" : "{count} na seleición", "{usedQuotaByte} used" : "{usedQuotaByte} n'usu", "{used} of {quota} used" : "{used} de {quota} n'usu", "{relative}% used" : "{relative}% n'usu", diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json index 3ccfed40a0c..dc64011f531 100644 --- a/apps/files/l10n/ast.json +++ b/apps/files/l10n/ast.json @@ -88,7 +88,6 @@ "Column headers with buttons are sortable." : "Les testeres de les columnes con botones puen ordenase.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta llista nun ta completa por motivos de rindimientu. Los ficheros van apaecer a midida que navegues pela llista.", "File not found" : "Nun s'atopó'l ficheru", - "{count} selected" : "{count} na seleición", "{usedQuotaByte} used" : "{usedQuotaByte} n'usu", "{used} of {quota} used" : "{used} de {quota} n'usu", "{relative}% used" : "{relative}% n'usu", diff --git a/apps/files/l10n/bg.js b/apps/files/l10n/bg.js index 7d172b5ceba..92a891ee965 100644 --- a/apps/files/l10n/bg.js +++ b/apps/files/l10n/bg.js @@ -78,6 +78,7 @@ OC.L10N.register( "\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно", "Actions" : "Действия", "File not found" : "Файлът не е намерен", + "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"], "{usedQuotaByte} used" : "{usedQuotaByte} използвано", "{used} of {quota} used" : "{used} от {quota} използвани", "{relative}% used" : "{relative}% използвано", diff --git a/apps/files/l10n/bg.json b/apps/files/l10n/bg.json index eea8dc8561c..2d3f7428d95 100644 --- a/apps/files/l10n/bg.json +++ b/apps/files/l10n/bg.json @@ -76,6 +76,7 @@ "\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно", "Actions" : "Действия", "File not found" : "Файлът не е намерен", + "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"], "{usedQuotaByte} used" : "{usedQuotaByte} използвано", "{used} of {quota} used" : "{used} от {quota} използвани", "{relative}% used" : "{relative}% използвано", diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index 165d9f4db58..b2450f96782 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -116,7 +116,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Les capçaleres de columna amb botons es poder ordenar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Aquesta llista no es mostra completament per raons de rendiment. Es mostraran els fitxers a mesura que navegueu per la llista.", "File not found" : "No s'ha trobat el fitxer", - "{count} selected" : "Selecció: {count}", "{usedQuotaByte} used" : "{usedQuotaByte} en ús", "{used} of {quota} used" : "{used} de {quota} en ús", "{relative}% used" : "{relative}% en ús", diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 785f02ffb75..7d468051d24 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -114,7 +114,6 @@ "Column headers with buttons are sortable." : "Les capçaleres de columna amb botons es poder ordenar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Aquesta llista no es mostra completament per raons de rendiment. Es mostraran els fitxers a mesura que navegueu per la llista.", "File not found" : "No s'ha trobat el fitxer", - "{count} selected" : "Selecció: {count}", "{usedQuotaByte} used" : "{usedQuotaByte} en ús", "{used} of {quota} used" : "{used} de {quota} en ús", "{relative}% used" : "{relative}% en ús", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index e3739719ee2..a1718de5911 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.", "File not found" : "Soubor nenalezen", - "{count} selected" : "vybráno {count}", + "_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"], "{usedQuotaByte} used" : "{usedQuotaByte} využito", "{used} of {quota} used" : "Využito {used} z {quota} ", "{relative}% used" : "{relative}% využito", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index 1f5d8646df1..9ebd45561e0 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.", "File not found" : "Soubor nenalezen", - "{count} selected" : "vybráno {count}", + "_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"], "{usedQuotaByte} used" : "{usedQuotaByte} využito", "{used} of {quota} used" : "Využito {used} z {quota} ", "{relative}% used" : "{relative}% využito", diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 1bd3dad4599..3cd40d2a95d 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -116,7 +116,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper er sorterbare.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.", "File not found" : "Filen blev ikke fundet", - "{count} selected" : "{count} valgt", "{usedQuotaByte} used" : "{usedQuotaByte} brugt", "{used} of {quota} used" : "{used} af {quota} brugt", "{relative}% used" : "{relative}% brugt", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index cce400a7144..5089b66dcc9 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -114,7 +114,6 @@ "Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper er sorterbare.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.", "File not found" : "Filen blev ikke fundet", - "{count} selected" : "{count} valgt", "{usedQuotaByte} used" : "{usedQuotaByte} brugt", "{used} of {quota} used" : "{used} af {quota} brugt", "{relative}% used" : "{relative}% brugt", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 7d0d105072c..3e6ad8bf9aa 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", - "{count} selected" : "{count} ausgewählt", + "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 7dca82a027c..709464ad3be 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", - "{count} selected" : "{count} ausgewählt", + "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index c0f58b2e1eb..63cf2a969c9 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", - "{count} selected" : "{count} ausgewählt", + "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 5f3c56b5943..ee85f6a1860 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", - "{count} selected" : "{count} ausgewählt", + "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js index b80ca51fce8..8e9d8cfe461 100644 --- a/apps/files/l10n/el.js +++ b/apps/files/l10n/el.js @@ -96,7 +96,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.", "File not found" : "Δε βρέθηκε το αρχείο", - "{count} selected" : "{count} έχουν επιλεγεί", "{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται", "{used} of {quota} used" : "Χρήση {used} από {quota} ", "{relative}% used" : "{relative}% χρησιμοποιείται", diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json index 517397b07c1..dfb52e9e725 100644 --- a/apps/files/l10n/el.json +++ b/apps/files/l10n/el.json @@ -94,7 +94,6 @@ "Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.", "File not found" : "Δε βρέθηκε το αρχείο", - "{count} selected" : "{count} έχουν επιλεγεί", "{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται", "{used} of {quota} used" : "Χρήση {used} από {quota} ", "{relative}% used" : "{relative}% χρησιμοποιείται", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 8c048258500..9321bed70a9 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", - "{count} selected" : "{count} selected", + "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 111c36b99b0..ad4a1a6e0ed 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", - "{count} selected" : "{count} selected", + "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 052bcaa2aa0..b20e2be9964 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -117,7 +117,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "No se ha encontrado el archivo", - "{count} selected" : "{count} seleccionados", + "_{count} selected_::_{count} selected_" : ["{count}seleccionado","{count} seleccionados","{count} seleccionados"], "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} usados de {quota}", "{relative}% used" : "{relative}% utilizado", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 3a9fa3af3e5..c34b3f7281b 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -115,7 +115,7 @@ "Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "No se ha encontrado el archivo", - "{count} selected" : "{count} seleccionados", + "_{count} selected_::_{count} selected_" : ["{count}seleccionado","{count} seleccionados","{count} seleccionados"], "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} usados de {quota}", "{relative}% used" : "{relative}% utilizado", diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js index 2e937b91fae..0702df37a2c 100644 --- a/apps/files/l10n/es_EC.js +++ b/apps/files/l10n/es_EC.js @@ -78,6 +78,7 @@ OC.L10N.register( "\"{displayName}\" action failed" : "La acción \"{displayName}\" falló.", "Actions" : "Acciones", "List of files and folders." : "Lista de archivos y carpetas. ", + "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionado"], "{usedQuotaByte} used" : "{usedQuotaByte} usados.", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% usados.", diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json index ce46795a8ae..321328d7be4 100644 --- a/apps/files/l10n/es_EC.json +++ b/apps/files/l10n/es_EC.json @@ -76,6 +76,7 @@ "\"{displayName}\" action failed" : "La acción \"{displayName}\" falló.", "Actions" : "Acciones", "List of files and folders." : "Lista de archivos y carpetas. ", + "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionado"], "{usedQuotaByte} used" : "{usedQuotaByte} usados.", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% usados.", diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 7ad14b22bbb..086d9e0fdd0 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -106,7 +106,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "Archivo no encontrado", - "{count} selected" : "{count} seleccionados", "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% utilizado", diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index 93aee529828..b126e689477 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -104,7 +104,6 @@ "Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "Archivo no encontrado", - "{count} selected" : "{count} seleccionados", "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% utilizado", diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index cd54b2acf33..4b6f263c9a0 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Võid kasutada nuppudega veerupäised järjestamiseks.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued failid lisanduvad sedamööda, kuid sa loendis edasi liigud.", "File not found" : "Faili ei leitud", - "{count} selected" : "{count} valitud", + "_{count} selected_::_{count} selected_" : ["{count} valitud","{count} valitud"], "{usedQuotaByte} used" : "{usedQuotaByte} kasutusel", "{used} of {quota} used" : "{used} / {quota} kasutusel", "{relative}% used" : "{relative}% kasutusel", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index b8052a14b64..1ff383d06c7 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Võid kasutada nuppudega veerupäised järjestamiseks.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued failid lisanduvad sedamööda, kuid sa loendis edasi liigud.", "File not found" : "Faili ei leitud", - "{count} selected" : "{count} valitud", + "_{count} selected_::_{count} selected_" : ["{count} valitud","{count} valitud"], "{usedQuotaByte} used" : "{usedQuotaByte} kasutusel", "{used} of {quota} used" : "{used} / {quota} kasutusel", "{relative}% used" : "{relative}% kasutusel", diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js index 51ed660a406..d5b58dc1124 100644 --- a/apps/files/l10n/eu.js +++ b/apps/files/l10n/eu.js @@ -111,7 +111,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Botoiak dituzten zutabeen goiburuak ordena daitezke.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Zerrenda hau ez da guztiz ikusten errendimendu arrazoiengatik. Fitxategiak zerrendan zehar nabigatzen duten heinean bistaratuko dira.", "File not found" : "Ez da fitxategia aurkitu", - "{count} selected" : "{count} hautatuta", + "_{count} selected_::_{count} selected_" : ["{count} hautatuta","{count} hautatuta"], "{usedQuotaByte} used" : "{usedQuotaByte} erabilita", "{used} of {quota} used" : "{used} / {quota} erabilita", "{relative}% used" : "%{relative} erabilita", diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json index f050ebc9124..07818c85564 100644 --- a/apps/files/l10n/eu.json +++ b/apps/files/l10n/eu.json @@ -109,7 +109,7 @@ "Column headers with buttons are sortable." : "Botoiak dituzten zutabeen goiburuak ordena daitezke.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Zerrenda hau ez da guztiz ikusten errendimendu arrazoiengatik. Fitxategiak zerrendan zehar nabigatzen duten heinean bistaratuko dira.", "File not found" : "Ez da fitxategia aurkitu", - "{count} selected" : "{count} hautatuta", + "_{count} selected_::_{count} selected_" : ["{count} hautatuta","{count} hautatuta"], "{usedQuotaByte} used" : "{usedQuotaByte} erabilita", "{used} of {quota} used" : "{used} / {quota} erabilita", "{relative}% used" : "%{relative} erabilita", diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js index 38d47a69821..64dcbc55580 100644 --- a/apps/files/l10n/fa.js +++ b/apps/files/l10n/fa.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "این لیست به دلایل عملکرد به طور کامل ارائه نشده است. در حین حرکت در لیست، فایل ها ارائه می شوند.", "File not found" : "فایل یافت نشد", - "{count} selected" : "{count} selected", "{usedQuotaByte} used" : "{usedQuotaByte} استفاده شده است", "{used} of {quota} used" : "{used} از {quota} استفاده شده", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json index d4cca468374..e652c77538b 100644 --- a/apps/files/l10n/fa.json +++ b/apps/files/l10n/fa.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "این لیست به دلایل عملکرد به طور کامل ارائه نشده است. در حین حرکت در لیست، فایل ها ارائه می شوند.", "File not found" : "فایل یافت نشد", - "{count} selected" : "{count} selected", "{usedQuotaByte} used" : "{usedQuotaByte} استفاده شده است", "{used} of {quota} used" : "{used} از {quota} استفاده شده", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js index 91ff67eb0e2..35958eb8d83 100644 --- a/apps/files/l10n/fi.js +++ b/apps/files/l10n/fi.js @@ -110,7 +110,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tätä luetteloa ei ole esitetty täysin suorituskykyyn liittyvistä syistä. Tiedostot esitetään sitä mukaa, kun selaat luetteloa.", "File not found" : "Tiedostoa ei löytynyt", - "{count} selected" : "{count} valittu", "{usedQuotaByte} used" : "{usedQuotaByte} käytetty", "{used} of {quota} used" : "{used}/{quota} käytetty", "{relative}% used" : "{relative} % käytetty", diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json index 86e0f1dd414..8f1db629e08 100644 --- a/apps/files/l10n/fi.json +++ b/apps/files/l10n/fi.json @@ -108,7 +108,6 @@ "Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tätä luetteloa ei ole esitetty täysin suorituskykyyn liittyvistä syistä. Tiedostot esitetään sitä mukaa, kun selaat luetteloa.", "File not found" : "Tiedostoa ei löytynyt", - "{count} selected" : "{count} valittu", "{usedQuotaByte} used" : "{usedQuotaByte} käytetty", "{used} of {quota} used" : "{used}/{quota} käytetty", "{relative}% used" : "{relative} % käytetty", diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 7a03d199e85..4616c9f75a4 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "L'entête des colonnes avec des boutons sont triables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Cette liste n'est pas entièrement affichée pour des raisons de performances. Les fichiers seront affichés au fur et à mesure que vous naviguerez dans la liste.", "File not found" : "Fichier non trouvé", - "{count} selected" : "{count} sélectionné(s)", + "_{count} selected_::_{count} selected_" : ["{count} sélectionné","{count} sélectionné(s)","{count} sélectionné(s)"], "{usedQuotaByte} used" : "{usedQuotaByte} utilisés", "{used} of {quota} used" : "{used} utilisés sur {quota}", "{relative}% used" : "{relative}% utilisés", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 7485b1c5749..ef55859018e 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "L'entête des colonnes avec des boutons sont triables.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Cette liste n'est pas entièrement affichée pour des raisons de performances. Les fichiers seront affichés au fur et à mesure que vous naviguerez dans la liste.", "File not found" : "Fichier non trouvé", - "{count} selected" : "{count} sélectionné(s)", + "_{count} selected_::_{count} selected_" : ["{count} sélectionné","{count} sélectionné(s)","{count} sélectionné(s)"], "{usedQuotaByte} used" : "{usedQuotaByte} utilisés", "{used} of {quota} used" : "{used} utilisés sur {quota}", "{relative}% used" : "{relative}% utilisés", diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js index 0aca93f958f..fa6b5d48918 100644 --- a/apps/files/l10n/ga.js +++ b/apps/files/l10n/ga.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.", "File not found" : "Comhad gan aimsiú", - "{count} selected" : "{count} roghnaithe", + "_{count} selected_::_{count} selected_" : ["{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe"], "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{used} of {quota} used" : "{used} de {quota} in úsáid", "{relative}% used" : "{relative}% in úsáid", diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json index d8fa2048c0a..00896df6386 100644 --- a/apps/files/l10n/ga.json +++ b/apps/files/l10n/ga.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.", "File not found" : "Comhad gan aimsiú", - "{count} selected" : "{count} roghnaithe", + "_{count} selected_::_{count} selected_" : ["{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe"], "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{used} of {quota} used" : "{used} de {quota} in úsáid", "{relative}% used" : "{relative}% in úsáid", diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js index bcd590765b6..cf0db39da34 100644 --- a/apps/files/l10n/gl.js +++ b/apps/files/l10n/gl.js @@ -116,7 +116,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "As cabeceiras das columnas con botóns pódense ordenar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista non se representa de xeito completo por mor do rendemento. Os ficheiros represéntanse mentres se despraza pola lista.", "File not found" : "Non se atopou o ficheiro", - "{count} selected" : "{count} seleccionados", + "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "Usados {used} de {quota}", "{relative}% used" : "{relative}% usado", @@ -152,7 +152,7 @@ OC.L10N.register( "Adding the file extension \"{new}\" may render the file unreadable." : "Engadir a extensión de ficheiro «{new}» pode facer que o ficheiro sexa ilexíbel.", "Do not show this dialog again." : "Non volver amosar este diálogo", "Select file or folder to link to" : "Seleccione o ficheiro ou cartafol ao que ligar", - "Choose {file}" : "Escoller {file}", + "Choose {file}" : "Escoller {file}", "Share" : "Compartir", "Shared by link" : "Compartido por ligazón", "Shared" : "Compartido", diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json index bcb6369d52d..6e37d23adad 100644 --- a/apps/files/l10n/gl.json +++ b/apps/files/l10n/gl.json @@ -114,7 +114,7 @@ "Column headers with buttons are sortable." : "As cabeceiras das columnas con botóns pódense ordenar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista non se representa de xeito completo por mor do rendemento. Os ficheiros represéntanse mentres se despraza pola lista.", "File not found" : "Non se atopou o ficheiro", - "{count} selected" : "{count} seleccionados", + "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "Usados {used} de {quota}", "{relative}% used" : "{relative}% usado", @@ -150,7 +150,7 @@ "Adding the file extension \"{new}\" may render the file unreadable." : "Engadir a extensión de ficheiro «{new}» pode facer que o ficheiro sexa ilexíbel.", "Do not show this dialog again." : "Non volver amosar este diálogo", "Select file or folder to link to" : "Seleccione o ficheiro ou cartafol ao que ligar", - "Choose {file}" : "Escoller {file}", + "Choose {file}" : "Escoller {file}", "Share" : "Compartir", "Shared by link" : "Compartido por ligazón", "Shared" : "Compartido", diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index eaed162caac..5c783906ce7 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -114,7 +114,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "A gombot tartalmazó oszlopfejlécek rendezhetők.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.", "File not found" : "A fájl nem található", - "{count} selected" : "{count}kiválasztva", "{usedQuotaByte} used" : "{usedQuotaByte} felhasználva", "{used} of {quota} used" : "{used} / {quota} felhasználva", "{relative}% used" : "{relative}% felhasználva", diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index f00a3f35eb3..4cc4b9e4a4d 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -112,7 +112,6 @@ "Column headers with buttons are sortable." : "A gombot tartalmazó oszlopfejlécek rendezhetők.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.", "File not found" : "A fájl nem található", - "{count} selected" : "{count}kiválasztva", "{usedQuotaByte} used" : "{usedQuotaByte} felhasználva", "{used} of {quota} used" : "{used} / {quota} felhasználva", "{relative}% used" : "{relative}% felhasználva", diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js index 2be51a48924..8bdd866a8dc 100644 --- a/apps/files/l10n/id.js +++ b/apps/files/l10n/id.js @@ -69,6 +69,7 @@ OC.L10N.register( "Size" : "Ukuran", "Actions" : "Tindakan", "File not found" : "Berkas tidak ditemukan", + "_{count} selected_::_{count} selected_" : ["{count} dipilih"], "{usedQuotaByte} used" : "{usedQuotaByte} digunakan", "{used} of {quota} used" : "{used} dari {quota} terpakai", "{relative}% used" : "{relative}% digunakan", diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json index d9c47f1600b..0dd90d46f7e 100644 --- a/apps/files/l10n/id.json +++ b/apps/files/l10n/id.json @@ -67,6 +67,7 @@ "Size" : "Ukuran", "Actions" : "Tindakan", "File not found" : "Berkas tidak ditemukan", + "_{count} selected_::_{count} selected_" : ["{count} dipilih"], "{usedQuotaByte} used" : "{usedQuotaByte} digunakan", "{used} of {quota} used" : "{used} dari {quota} terpakai", "{relative}% used" : "{relative}% digunakan", diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index 75cccd78118..5eb9a5c9d03 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -114,7 +114,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Dálkfyrirsagnir með hnöppum eru raðanlegar", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Skrárnar munu birtast eftir því sem farið er í gegnum listann.", "File not found" : "Skrá finnst ekki", - "{count} selected" : "{count} valið", "{usedQuotaByte} used" : "{usedQuotaByte} notað", "{used} of {quota} used" : "{used} af {quota} notað", "{relative}% used" : "{relative}% notað", diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index 0dcd0432f49..19d99ddf893 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -112,7 +112,6 @@ "Column headers with buttons are sortable." : "Dálkfyrirsagnir með hnöppum eru raðanlegar", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Skrárnar munu birtast eftir því sem farið er í gegnum listann.", "File not found" : "Skrá finnst ekki", - "{count} selected" : "{count} valið", "{usedQuotaByte} used" : "{usedQuotaByte} notað", "{used} of {quota} used" : "{used} af {quota} notað", "{relative}% used" : "{relative}% notað", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 04252175d75..0a366f2031f 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Le intestazioni di colonna con pulsanti sono ordinabili.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.", "File not found" : "File non trovato", - "{count} selected" : "{count} selezionati", + "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"], "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", "{relative}% used" : "{relative}% usato", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 0c71fc93b41..5ceaf0f95c9 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Le intestazioni di colonna con pulsanti sono ordinabili.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.", "File not found" : "File non trovato", - "{count} selected" : "{count} selezionati", + "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"], "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", "{relative}% used" : "{relative}% usato", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index 5e262b4f8cd..4ec8e70aa85 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "ボタン付きの列ヘッダはソート可能です。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "このリストはパフォーマンスの都合上、すべてレンダリングされているわけではありません。リスト内を移動すると、ファイルが次々と表示されていきます。", "File not found" : "ファイルが見つかりません", - "{count} selected" : "{count} 選択", "{usedQuotaByte} used" : "{usedQuotaByte} 使用されています", "{used} of {quota} used" : "{used} / {quota} 使用中", "{relative}% used" : "{relative}% 使用されています", diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index 3b07da7e45e..db2d6694bd0 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "ボタン付きの列ヘッダはソート可能です。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "このリストはパフォーマンスの都合上、すべてレンダリングされているわけではありません。リスト内を移動すると、ファイルが次々と表示されていきます。", "File not found" : "ファイルが見つかりません", - "{count} selected" : "{count} 選択", "{usedQuotaByte} used" : "{usedQuotaByte} 使用されています", "{used} of {quota} used" : "{used} / {quota} 使用中", "{relative}% used" : "{relative}% 使用されています", diff --git a/apps/files/l10n/ka.js b/apps/files/l10n/ka.js index 550819832fc..648dd9e0cd0 100644 --- a/apps/files/l10n/ka.js +++ b/apps/files/l10n/ka.js @@ -85,6 +85,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", + "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/ka.json b/apps/files/l10n/ka.json index b9120314895..2f2017ccc82 100644 --- a/apps/files/l10n/ka.json +++ b/apps/files/l10n/ka.json @@ -83,6 +83,7 @@ "Column headers with buttons are sortable." : "Column headers with buttons are sortable.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", + "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 927f765b6f6..c275c4fc723 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -116,7 +116,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "버튼이 있는 열 머리글은 정렬할 수 있습니다.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "성능 상의 이유로 목록을 전부 표시하지 않았습니다. 목록을 탐색하면 파일들이 표시됩니다.", "File not found" : "파일을 찾을 수 없음", - "{count} selected" : "{count}개 선택됨", "{usedQuotaByte} used" : "{usedQuotaByte} 사용", "{used} of {quota} used" : "{quota} 중 {used} 사용함", "{relative}% used" : "{relative}% 사용", diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index 1d8f34484ef..161fcf36443 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -114,7 +114,6 @@ "Column headers with buttons are sortable." : "버튼이 있는 열 머리글은 정렬할 수 있습니다.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "성능 상의 이유로 목록을 전부 표시하지 않았습니다. 목록을 탐색하면 파일들이 표시됩니다.", "File not found" : "파일을 찾을 수 없음", - "{count} selected" : "{count}개 선택됨", "{usedQuotaByte} used" : "{usedQuotaByte} 사용", "{used} of {quota} used" : "{quota} 중 {used} 사용함", "{relative}% used" : "{relative}% 사용", diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js index e977378b33b..2adddf95db7 100644 --- a/apps/files/l10n/lt_LT.js +++ b/apps/files/l10n/lt_LT.js @@ -88,7 +88,6 @@ OC.L10N.register( "Actions" : "Veiksmai", "List of files and folders." : "Failų ir aplankų sąrašas.", "File not found" : "Failas nerastas", - "{count} selected" : "Pažymėta {count}", "{usedQuotaByte} used" : "Naudojama {usedQuotaByte}", "{used} of {quota} used" : "panaudota {used} iš {quota}", "{relative}% used" : "Naudojama {relative}", diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json index a2495e4f0f5..8bd48c833b8 100644 --- a/apps/files/l10n/lt_LT.json +++ b/apps/files/l10n/lt_LT.json @@ -86,7 +86,6 @@ "Actions" : "Veiksmai", "List of files and folders." : "Failų ir aplankų sąrašas.", "File not found" : "Failas nerastas", - "{count} selected" : "Pažymėta {count}", "{usedQuotaByte} used" : "Naudojama {usedQuotaByte}", "{used} of {quota} used" : "panaudota {used} iš {quota}", "{relative}% used" : "Naudojama {relative}", diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js index fa58071b8c6..6e9fa1dbd38 100644 --- a/apps/files/l10n/mk.js +++ b/apps/files/l10n/mk.js @@ -99,7 +99,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Насловите на колоните со копчиња се сортираат.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Оваа листа не е целосно прикажана поради заштеда на перформанси. Датотеките ќе се прикажуваат додека се движите низ листата.", "File not found" : "Датотеката не е пронајдена", - "{count} selected" : "{count} селектирани", "{usedQuotaByte} used" : "искористено {usedQuotaByte}", "{used} of {quota} used" : "Искористени {used} од {quota}", "{relative}% used" : "искористено {relative}% ", diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json index a1ded352961..e4c8680b27a 100644 --- a/apps/files/l10n/mk.json +++ b/apps/files/l10n/mk.json @@ -97,7 +97,6 @@ "Column headers with buttons are sortable." : "Насловите на колоните со копчиња се сортираат.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Оваа листа не е целосно прикажана поради заштеда на перформанси. Датотеките ќе се прикажуваат додека се движите низ листата.", "File not found" : "Датотеката не е пронајдена", - "{count} selected" : "{count} селектирани", "{usedQuotaByte} used" : "искористено {usedQuotaByte}", "{used} of {quota} used" : "Искористени {used} од {quota}", "{relative}% used" : "искористено {relative}% ", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index eb260daa93b..75932ece0ae 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -112,7 +112,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper kan sorteres.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Filene gjengis når du navigerer gjennom listen.", "File not found" : "Finner ikke filen", - "{count} selected" : "{count} valgt", "{usedQuotaByte} used" : "{usedQuotaByte} brukt", "{used} of {quota} used" : "{used} av {quota} brukt", "{relative}% used" : "{relative}% brukt", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index f92fd8a93d2..68b4f5caba4 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -110,7 +110,6 @@ "Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper kan sorteres.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Filene gjengis når du navigerer gjennom listen.", "File not found" : "Finner ikke filen", - "{count} selected" : "{count} valgt", "{usedQuotaByte} used" : "{usedQuotaByte} brukt", "{used} of {quota} used" : "{used} av {quota} brukt", "{relative}% used" : "{relative}% brukt", diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index 30ae8770ece..672161ab12a 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -122,7 +122,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Kolomkoppen met knoppen zijn sorteerbaar", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "De lijst is niet volledig verwerkt om de prestatie niet te beperken. De bestanden worden verder verwerkt als je door de lijst navigeert.", "File not found" : "Bestand niet gevonden", - "{count} selected" : "{count} geselecteerd", "{usedQuotaByte} used" : "{usedQuotaByte} gebruikt", "{used} of {quota} used" : "{used} van {quota} gebruikt", "{relative}% used" : "{relative}% gebruikt", diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index 4f548fe1987..b81ab06b1ec 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -120,7 +120,6 @@ "Column headers with buttons are sortable." : "Kolomkoppen met knoppen zijn sorteerbaar", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "De lijst is niet volledig verwerkt om de prestatie niet te beperken. De bestanden worden verder verwerkt als je door de lijst navigeert.", "File not found" : "Bestand niet gevonden", - "{count} selected" : "{count} geselecteerd", "{usedQuotaByte} used" : "{usedQuotaByte} gebruikt", "{used} of {quota} used" : "{used} van {quota} gebruikt", "{relative}% used" : "{relative}% gebruikt", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index dc0e482ea90..8013e28dd28 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Nagłówki kolumn z przyciskami są sortowalne.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.", "File not found" : "Nie odnaleziono pliku", - "{count} selected" : "wybrano {count}", "{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}", "{used} of {quota} used" : "Wykorzystane {used} z {quota}", "{relative}% used" : "Wykorzystano {relative}%", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index e1c31eb98d0..424f6dc6399 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "Nagłówki kolumn z przyciskami są sortowalne.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.", "File not found" : "Nie odnaleziono pliku", - "{count} selected" : "wybrano {count}", "{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}", "{used} of {quota} used" : "Wykorzystane {used} z {quota}", "{relative}% used" : "Wykorzystano {relative}%", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 4fbf806e50f..f91a54ae351 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Os cabeçalhos de coluna com botões podem ser ordenados.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados à medida que você navegar pela lista.", "File not found" : "Arquivo não encontrado", - "{count} selected" : "{count} selecionados", + "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionados","{count} selecionados"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% usado", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 26407bec6c5..f7b9e8a7b55 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Os cabeçalhos de coluna com botões podem ser ordenados.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados à medida que você navegar pela lista.", "File not found" : "Arquivo não encontrado", - "{count} selected" : "{count} selecionados", + "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionados","{count} selecionados"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "{used} de {quota} usados", "{relative}% used" : "{relative}% usado", diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js index f7ee81df2ff..a5832ddbc58 100644 --- a/apps/files/l10n/pt_PT.js +++ b/apps/files/l10n/pt_PT.js @@ -105,7 +105,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são ordenáveis", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.", "File not found" : "Ficheiro não encontrado", - "{count} selected" : "{count} selecionado ", + "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "utilizado {used} de {quota}", "{relative}% used" : "{relative}% usado", diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json index 87045e72815..d65768f0290 100644 --- a/apps/files/l10n/pt_PT.json +++ b/apps/files/l10n/pt_PT.json @@ -103,7 +103,7 @@ "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são ordenáveis", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.", "File not found" : "Ficheiro não encontrado", - "{count} selected" : "{count} selecionado ", + "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"], "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{used} of {quota} used" : "utilizado {used} de {quota}", "{relative}% used" : "{relative}% usado", diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js index 8ad80762a2b..bdfc25f6d8d 100644 --- a/apps/files/l10n/ro.js +++ b/apps/files/l10n/ro.js @@ -82,6 +82,7 @@ OC.L10N.register( "List of files and folders." : "Listă fișiere și foldere", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Această lista este incomplet afișată din motive de performanță. Fișierele vor fi afișate pe măsură ce navigați prin listă.", "File not found" : "Fișierul nu a fost găsit", + "_{count} selected_::_{count} selected_" : ["{count}selectat","{count}selectate","{count}selectate"], "{usedQuotaByte} used" : "{usedQuotaByte} utilizați", "{used} of {quota} used" : "{used} din {quota} folosiți", "{relative}% used" : "{relative}% utilizat", diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json index d9c1484484c..7b8d2223910 100644 --- a/apps/files/l10n/ro.json +++ b/apps/files/l10n/ro.json @@ -80,6 +80,7 @@ "List of files and folders." : "Listă fișiere și foldere", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Această lista este incomplet afișată din motive de performanță. Fișierele vor fi afișate pe măsură ce navigați prin listă.", "File not found" : "Fișierul nu a fost găsit", + "_{count} selected_::_{count} selected_" : ["{count}selectat","{count}selectate","{count}selectate"], "{usedQuotaByte} used" : "{usedQuotaByte} utilizați", "{used} of {quota} used" : "{used} din {quota} folosiți", "{relative}% used" : "{relative}% utilizat", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 324ea82e228..6bcef9a52d3 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Заголовки столбцов с кнопками можно сортировать.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Этот список отображается не полностью из соображений производительности. Файлы будут отображаться по мере перемещения по списку.", "File not found" : "Файл не найден", - "{count} selected" : "{count} выбрано", "{usedQuotaByte} used" : "Использовано {usedQuotaByte}", "{used} of {quota} used" : "использовано {used} из {quota}", "{relative}% used" : "Использовано {relative}%", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index 73cb009e141..609359c71c4 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "Заголовки столбцов с кнопками можно сортировать.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Этот список отображается не полностью из соображений производительности. Файлы будут отображаться по мере перемещения по списку.", "File not found" : "Файл не найден", - "{count} selected" : "{count} выбрано", "{usedQuotaByte} used" : "Использовано {usedQuotaByte}", "{used} of {quota} used" : "использовано {used} из {quota}", "{relative}% used" : "Использовано {relative}%", diff --git a/apps/files/l10n/sc.js b/apps/files/l10n/sc.js index 90722be0e4c..d5d2d3bd1b0 100644 --- a/apps/files/l10n/sc.js +++ b/apps/files/l10n/sc.js @@ -76,7 +76,6 @@ OC.L10N.register( "(selected)" : "(seletzionados)", "List of files and folders." : "Lista de archìvios e cartellas.", "File not found" : "Archìviu no agatadu", - "{count} selected" : "seletzionados: {count}", "{usedQuotaByte} used" : "{usedQuotaByte} impreadu", "{used} of {quota} used" : "{used} de {quota} impreadu", "{relative}% used" : "{relative}% impreadu", diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json index 0bdada5e8a7..d0213890843 100644 --- a/apps/files/l10n/sc.json +++ b/apps/files/l10n/sc.json @@ -74,7 +74,6 @@ "(selected)" : "(seletzionados)", "List of files and folders." : "Lista de archìvios e cartellas.", "File not found" : "Archìviu no agatadu", - "{count} selected" : "seletzionados: {count}", "{usedQuotaByte} used" : "{usedQuotaByte} impreadu", "{used} of {quota} used" : "{used} de {quota} impreadu", "{relative}% used" : "{relative}% impreadu", diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index b4f176d76f9..cab8dc7bf62 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -116,7 +116,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Stĺpce hlavičiek s tlačidlami sú triediteľné.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Súbory budú vykreslené, keď budete prechádzať zoznamom.", "File not found" : "Súbor nenájdený", - "{count} selected" : "{count} vybraných", + "_{count} selected_::_{count} selected_" : ["{count} vybraný","{count} vybrané","{count} vybraných","{count} vybraných"], "{usedQuotaByte} used" : "{usedQuotaByte} použitých", "{used} of {quota} used" : "použitých {used} z {quota}", "{relative}% used" : "{relative}% použitých", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 00da3b734a4..f3f95fa723d 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -114,7 +114,7 @@ "Column headers with buttons are sortable." : "Stĺpce hlavičiek s tlačidlami sú triediteľné.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Súbory budú vykreslené, keď budete prechádzať zoznamom.", "File not found" : "Súbor nenájdený", - "{count} selected" : "{count} vybraných", + "_{count} selected_::_{count} selected_" : ["{count} vybraný","{count} vybrané","{count} vybraných","{count} vybraných"], "{usedQuotaByte} used" : "{usedQuotaByte} použitých", "{used} of {quota} used" : "použitých {used} z {quota}", "{relative}% used" : "{relative}% použitých", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index 19893245a4a..eaf19443be1 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -118,7 +118,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Naslove stolpcev z gumbi je mogoče sortirati.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam datotek ni v celoti izpisan zaradi zagotavljanja hitrosti in odzivnosti sistema. Predmeti se bodo dopolnjevali med brskanjem.", "File not found" : "Datoteke ni mogoče najti", - "{count} selected" : "{count} izbranih", "{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}", "{used} of {quota} used" : "V uporabi je {used} od {quota}", "{relative}% used" : "Zasedeno {relative} %", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index f738ccdfba6..7766e6a7014 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -116,7 +116,6 @@ "Column headers with buttons are sortable." : "Naslove stolpcev z gumbi je mogoče sortirati.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam datotek ni v celoti izpisan zaradi zagotavljanja hitrosti in odzivnosti sistema. Predmeti se bodo dopolnjevali med brskanjem.", "File not found" : "Datoteke ni mogoče najti", - "{count} selected" : "{count} izbranih", "{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}", "{used} of {quota} used" : "V uporabi je {used} od {quota}", "{relative}% used" : "Zasedeno {relative} %", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index 1462028efbd..d6db57e6761 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Заглавља колона са дугмићима могу да се соритрају.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ова листа није у потпуности приказана из разлога перформанси. Фајлови ће се приказивати како се крећете кроз листу.", "File not found" : "Фајл није нађен", - "{count} selected" : "{count} изабрано", + "_{count} selected_::_{count} selected_" : ["изабран је {count}","изабрана су {count}","изабрано је {count}"], "{usedQuotaByte} used" : "{usedQuotaByte} искоришћено", "{used} of {quota} used" : "{used} од {quota} искоришћено", "{relative}% used" : "{relative}% искоришћено", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index e4cfab160f8..234cec9924a 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Заглавља колона са дугмићима могу да се соритрају.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ова листа није у потпуности приказана из разлога перформанси. Фајлови ће се приказивати како се крећете кроз листу.", "File not found" : "Фајл није нађен", - "{count} selected" : "{count} изабрано", + "_{count} selected_::_{count} selected_" : ["изабран је {count}","изабрана су {count}","изабрано је {count}"], "{usedQuotaByte} used" : "{usedQuotaByte} искоришћено", "{used} of {quota} used" : "{used} од {quota} искоришћено", "{relative}% used" : "{relative}% искоришћено", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index bb758578e22..6553841455e 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Kolumnrubriker med knappar är sorterbara.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denna lista är inte helt återgiven av prestandaskäl. Filerna kommer att renderas när du navigerar genom listan.", "File not found" : "Filen kunde inte hittas", - "{count} selected" : "{count} valda", + "_{count} selected_::_{count} selected_" : ["{count} vald","{count} valda"], "{usedQuotaByte} used" : "{usedQuotaByte} använt", "{used} of {quota} used" : "{used} av {quota} använt", "{relative}% used" : "{relative}% använt", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index e0ac773057c..f412c03a05a 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "Kolumnrubriker med knappar är sorterbara.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denna lista är inte helt återgiven av prestandaskäl. Filerna kommer att renderas när du navigerar genom listan.", "File not found" : "Filen kunde inte hittas", - "{count} selected" : "{count} valda", + "_{count} selected_::_{count} selected_" : ["{count} vald","{count} valda"], "{usedQuotaByte} used" : "{usedQuotaByte} använt", "{used} of {quota} used" : "{used} av {quota} använt", "{relative}% used" : "{relative}% använt", diff --git a/apps/files/l10n/sw.js b/apps/files/l10n/sw.js index 028248f33c5..966124e25f0 100644 --- a/apps/files/l10n/sw.js +++ b/apps/files/l10n/sw.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Vichwa vya safu wima vilivyo na vifungo vinaweza kupangwa.\n ", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Orodha hii haijatolewa kikamilifu kwa sababu za utendaji. Faili zitatolewa unapopitia orodha.", "File not found" : "Faili halipatikani", - "{count} selected" : "{count}imechaguliwa", "{usedQuotaByte} used" : "{usedQuotaByte}imetumika", "{used} of {quota} used" : "{used} ya {quota}imetumika", "{relative}% used" : "{relative}% imetumika", @@ -186,6 +185,13 @@ OC.L10N.register( "Open in files" : "Fungua ndani ya faili", "File cannot be accessed" : "Faili haliwezi kufikika", "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili haikupatikana au huna ruhusa ya kuitazama. Uliza mtumaji kuishirikisha.", + "Clipboard is not available" : "Ubao wa kunakili haupatikani", + "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili", + "Sort favorites first" : "Chagua za upendeleo kwanza", + "Sort folders before files" : "Chagua vikasha kabla ya mafaili", + "Show hidden files" : "Onesha mafaili yaliyofichwa", + "Show file type column" : "Onyesha safu wima ya aina ya faili\n ", + "Crop image previews" : "Punguza onyesho la kukagua picha", "Enable the grid view" : "Wezesha mwonekano wa gridi", "Enable folder tree" : "Wezesha faili la tatu", "Additional settings" : "Mipangilio ya nyongeza", @@ -195,7 +201,11 @@ OC.L10N.register( "Use this address to access your Files via WebDAV" : "Tumia anwani hii kufikia Faili zako kupitia WavutiDAV", "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ikiwa umewasha 2FA, lazima uunde na utumie nenosiri jipya la programu kwa kubofya hapa", "Warnings" : "Maonyo", + "Prevent warning dialogs from open or reenable them." : "Zuia mazungumzo ya onyo yasifunguliwe au uwashe upya.\n ", + "Show a warning dialog when changing a file extension." : "Onyesha mazungumzo ya onyo unapobadilisha kiendelezi cha faili.", "Keyboard shortcuts" : "Mikato ya keyboard", + "Speed up your Files experience with these quick shortcuts." : "Ongeza kasi ya utumiaji wa Faili zako kwa njia hizi za mkato za haraka.", + "Open the actions menu for a file" : "Fungua menyu ya vitendo kwa faili", "Rename a file" : "Ita faili jina jipya", "Delete a file" : "Futa faili", "Favorite or remove a file from favorites" : "Pendwa au ondoa faili kutoka pendwa", @@ -204,8 +214,20 @@ OC.L10N.register( "Select all files" : "Chagua faili zote", "Deselect all files" : "Usichague faili zote", "Select or deselect a file" : "Chagua au usichague faili", + "Select a range of files" : "Chagua anuwai ya faili", "Navigation" : "Uendeshaji", + "Navigate to the parent folder" : "Nenda kwenye kisanduku kikuu", + "Navigate to the file above" : "Sogea kwenye faili la juu", + "Navigate to the file below" : "Sogea kwenye faili la chini", + "Navigate to the file on the left (in grid mode)" : "Sogea kwenye faili la kushoto (in grid mode)", + "Navigate to the file on the right (in grid mode)" : "Sogea kwenye faili la kulia ( in grid mode)", "View" : "Angalia", + "Toggle the grid view" : "Geuza mwonekano wa gridi\n ", + "Open the sidebar for a file" : "Fungua utepe kwa faili", + "Show those shortcuts" : "Onesha mikato hiyo", + "You" : "Wewe", + "Shared multiple times with different people" : "Shared multiple times with different people", + "Error while loading the file data" : "Hitilafu wakati wa kupakia data za faili", "Owner" : "Mmiliki", "Remove from favorites" : "Ondoa kutoka katika pendwa", "Add to favorites" : "Ongeza kwenye pendwa", diff --git a/apps/files/l10n/sw.json b/apps/files/l10n/sw.json index 868a65e86f2..e6b7997e086 100644 --- a/apps/files/l10n/sw.json +++ b/apps/files/l10n/sw.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "Vichwa vya safu wima vilivyo na vifungo vinaweza kupangwa.\n ", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Orodha hii haijatolewa kikamilifu kwa sababu za utendaji. Faili zitatolewa unapopitia orodha.", "File not found" : "Faili halipatikani", - "{count} selected" : "{count}imechaguliwa", "{usedQuotaByte} used" : "{usedQuotaByte}imetumika", "{used} of {quota} used" : "{used} ya {quota}imetumika", "{relative}% used" : "{relative}% imetumika", @@ -184,6 +183,13 @@ "Open in files" : "Fungua ndani ya faili", "File cannot be accessed" : "Faili haliwezi kufikika", "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili haikupatikana au huna ruhusa ya kuitazama. Uliza mtumaji kuishirikisha.", + "Clipboard is not available" : "Ubao wa kunakili haupatikani", + "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili", + "Sort favorites first" : "Chagua za upendeleo kwanza", + "Sort folders before files" : "Chagua vikasha kabla ya mafaili", + "Show hidden files" : "Onesha mafaili yaliyofichwa", + "Show file type column" : "Onyesha safu wima ya aina ya faili\n ", + "Crop image previews" : "Punguza onyesho la kukagua picha", "Enable the grid view" : "Wezesha mwonekano wa gridi", "Enable folder tree" : "Wezesha faili la tatu", "Additional settings" : "Mipangilio ya nyongeza", @@ -193,7 +199,11 @@ "Use this address to access your Files via WebDAV" : "Tumia anwani hii kufikia Faili zako kupitia WavutiDAV", "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ikiwa umewasha 2FA, lazima uunde na utumie nenosiri jipya la programu kwa kubofya hapa", "Warnings" : "Maonyo", + "Prevent warning dialogs from open or reenable them." : "Zuia mazungumzo ya onyo yasifunguliwe au uwashe upya.\n ", + "Show a warning dialog when changing a file extension." : "Onyesha mazungumzo ya onyo unapobadilisha kiendelezi cha faili.", "Keyboard shortcuts" : "Mikato ya keyboard", + "Speed up your Files experience with these quick shortcuts." : "Ongeza kasi ya utumiaji wa Faili zako kwa njia hizi za mkato za haraka.", + "Open the actions menu for a file" : "Fungua menyu ya vitendo kwa faili", "Rename a file" : "Ita faili jina jipya", "Delete a file" : "Futa faili", "Favorite or remove a file from favorites" : "Pendwa au ondoa faili kutoka pendwa", @@ -202,8 +212,20 @@ "Select all files" : "Chagua faili zote", "Deselect all files" : "Usichague faili zote", "Select or deselect a file" : "Chagua au usichague faili", + "Select a range of files" : "Chagua anuwai ya faili", "Navigation" : "Uendeshaji", + "Navigate to the parent folder" : "Nenda kwenye kisanduku kikuu", + "Navigate to the file above" : "Sogea kwenye faili la juu", + "Navigate to the file below" : "Sogea kwenye faili la chini", + "Navigate to the file on the left (in grid mode)" : "Sogea kwenye faili la kushoto (in grid mode)", + "Navigate to the file on the right (in grid mode)" : "Sogea kwenye faili la kulia ( in grid mode)", "View" : "Angalia", + "Toggle the grid view" : "Geuza mwonekano wa gridi\n ", + "Open the sidebar for a file" : "Fungua utepe kwa faili", + "Show those shortcuts" : "Onesha mikato hiyo", + "You" : "Wewe", + "Shared multiple times with different people" : "Shared multiple times with different people", + "Error while loading the file data" : "Hitilafu wakati wa kupakia data za faili", "Owner" : "Mmiliki", "Remove from favorites" : "Ondoa kutoka katika pendwa", "Add to favorites" : "Ongeza kwenye pendwa", diff --git a/apps/files/l10n/th.js b/apps/files/l10n/th.js index 5b51231ceb2..2a340d22504 100644 --- a/apps/files/l10n/th.js +++ b/apps/files/l10n/th.js @@ -69,6 +69,7 @@ OC.L10N.register( "Size" : "ขนาด", "Actions" : "การกระทำ", "File not found" : "ไม่พบไฟล์", + "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"], "{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}", "{used} of {quota} used" : "ใช้ไป {used} จาก {quota}", "{relative}% used" : "ใช้ไป {relative}%", diff --git a/apps/files/l10n/th.json b/apps/files/l10n/th.json index bdde1cf0d06..2d0a94b0afb 100644 --- a/apps/files/l10n/th.json +++ b/apps/files/l10n/th.json @@ -67,6 +67,7 @@ "Size" : "ขนาด", "Actions" : "การกระทำ", "File not found" : "ไม่พบไฟล์", + "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"], "{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}", "{used} of {quota} used" : "ใช้ไป {used} จาก {quota}", "{relative}% used" : "ใช้ไป {relative}%", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 129a6d4f178..f3643d4c5b0 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -116,7 +116,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Düğmeler olan sütunlar sıralanabilir.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe dosyalar görüntülenecek.", "File not found" : "Dosya bulunamadı", - "{count} selected" : "{count} seçilmiş", + "_{count} selected_::_{count} selected_" : ["{count} seçilmiş","{count} seçilmiş"], "{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış", "{used} of {quota} used" : "{used} / {quota} kullanılmış", "{relative}% used" : "%{relative} kullanılmış", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index f20a43de5ba..65abc77e66d 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -114,7 +114,7 @@ "Column headers with buttons are sortable." : "Düğmeler olan sütunlar sıralanabilir.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe dosyalar görüntülenecek.", "File not found" : "Dosya bulunamadı", - "{count} selected" : "{count} seçilmiş", + "_{count} selected_::_{count} selected_" : ["{count} seçilmiş","{count} seçilmiş"], "{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış", "{used} of {quota} used" : "{used} / {quota} kullanılmış", "{relative}% used" : "%{relative} kullanılmış", diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js index b277568a525..b2dbc4b6b44 100644 --- a/apps/files/l10n/ug.js +++ b/apps/files/l10n/ug.js @@ -104,7 +104,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "كۇنۇپكىلار بار ئىستون ماۋزۇلىرى تەرتىپلىك.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھۆججەتلەر تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.", "File not found" : "ھۆججەت تېپىلمىدى", - "{count} selected" : "{count} تاللانغان", "{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن", "{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن", "{relative}% used" : "{relative}% ئىشلىتىلگەن", diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json index 518c039bbce..d51f6ab4258 100644 --- a/apps/files/l10n/ug.json +++ b/apps/files/l10n/ug.json @@ -102,7 +102,6 @@ "Column headers with buttons are sortable." : "كۇنۇپكىلار بار ئىستون ماۋزۇلىرى تەرتىپلىك.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھۆججەتلەر تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.", "File not found" : "ھۆججەت تېپىلمىدى", - "{count} selected" : "{count} تاللانغان", "{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن", "{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن", "{relative}% used" : "{relative}% ئىشلىتىلگەن", diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index a800b46858d..8ad29f48c28 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Назви стовпців з кнопками можна впорядковувати", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.", "File not found" : "Файл не знайдено", - "{count} selected" : "{count} вибрано", "{usedQuotaByte} used" : "{usedQuotaByte} використано", "{used} of {quota} used" : "Використано {used} із {quota}", "{relative}% used" : "{relative}% використано", diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index 0e58cbd39aa..c124ca30b1b 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "Назви стовпців з кнопками можна впорядковувати", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.", "File not found" : "Файл не знайдено", - "{count} selected" : "{count} вибрано", "{usedQuotaByte} used" : "{usedQuotaByte} використано", "{used} of {quota} used" : "Використано {used} із {quota}", "{relative}% used" : "{relative}% використано", diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index c7730a797e1..f2dcda9a650 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -105,7 +105,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Tiêu đề cột có thể sắp xếp được.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Danh sách này không được hiển thị đầy đủ để tăng hiệu năng. Các tập tin sẽ được hiển thị khi bạn điều hướng qua danh sách.", "File not found" : "Không tìm thấy tập tin", - "{count} selected" : "đã chọn {count} ", "{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng", "{used} of {quota} used" : "{used} trong {quota} đã được sử dụng", "{relative}% used" : "đã sử dụng {relative}%", diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index ebb4a3ae9e1..4cabf258101 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -103,7 +103,6 @@ "Column headers with buttons are sortable." : "Tiêu đề cột có thể sắp xếp được.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Danh sách này không được hiển thị đầy đủ để tăng hiệu năng. Các tập tin sẽ được hiển thị khi bạn điều hướng qua danh sách.", "File not found" : "Không tìm thấy tập tin", - "{count} selected" : "đã chọn {count} ", "{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng", "{used} of {quota} used" : "{used} trong {quota} đã được sử dụng", "{relative}% used" : "đã sử dụng {relative}%", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 66cd6bc7bdd..a6e951b09d9 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -124,7 +124,6 @@ OC.L10N.register( "Column headers with buttons are sortable." : "带有按钮的列标题可进行排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出于性能考虑,此列表未完全呈现。文件将在您浏览列表时呈现。", "File not found" : "文件未找到", - "{count} selected" : "已选中 {count}", "{usedQuotaByte} used" : "{usedQuotaByte} 已使用", "{used} of {quota} used" : "已使用 {used} / {quota}", "{relative}% used" : "{relative}% 已使用", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index 7fa07ebcbcf..b19f085b8cf 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -122,7 +122,6 @@ "Column headers with buttons are sortable." : "带有按钮的列标题可进行排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出于性能考虑,此列表未完全呈现。文件将在您浏览列表时呈现。", "File not found" : "文件未找到", - "{count} selected" : "已选中 {count}", "{usedQuotaByte} used" : "{usedQuotaByte} 已使用", "{used} of {quota} used" : "已使用 {used} / {quota}", "{relative}% used" : "{relative}% 已使用", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index 650ec7a5511..1ed2bb1cb4f 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "具有按鈕的縱列標題可排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", - "{count} selected" : "已選擇 {count} 項", + "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"], "{usedQuotaByte} used" : "已使用 {usedQuotaByte} ", "{used} of {quota} used" : "已使用 {quota} 當中的 {used}", "{relative}% used" : "已使用 {relative}%", diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index 60bfa5bab26..b02c2d70d50 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "具有按鈕的縱列標題可排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", - "{count} selected" : "已選擇 {count} 項", + "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"], "{usedQuotaByte} used" : "已使用 {usedQuotaByte} ", "{used} of {quota} used" : "已使用 {quota} 當中的 {used}", "{relative}% used" : "已使用 {relative}%", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 960e6ec7a8c..9ada2759aa1 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -124,7 +124,7 @@ OC.L10N.register( "Column headers with buttons are sortable." : "帶有按鈕的欄位標頭為可排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", - "{count} selected" : "已選取 {count} 個", + "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"], "{usedQuotaByte} used" : "已使用 {usedQuotaByte}", "{used} of {quota} used" : "已使用 {used},共 {quota}", "{relative}% used" : "已使用 {relative}%", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index a331632097a..4524c884385 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -122,7 +122,7 @@ "Column headers with buttons are sortable." : "帶有按鈕的欄位標頭為可排序。", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", - "{count} selected" : "已選取 {count} 個", + "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"], "{usedQuotaByte} used" : "已使用 {usedQuotaByte}", "{used} of {quota} used" : "已使用 {used},共 {quota}", "{relative}% used" : "已使用 {relative}%", diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index b335737c4dd..60791a2b527 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -483,13 +483,6 @@ export default defineComponent({ watch: { /** - * Update the window title to match the page heading - */ - pageHeading() { - document.title = `${this.pageHeading} - ${getCapabilities().theming?.name ?? 'Nextcloud'}` - }, - - /** * Handle rendering the custom empty view * @param show The current state if the custom empty view should be rendered */ diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 9ed6edf5359..0373e006838 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -185,6 +185,7 @@ OC.L10N.register( "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben", "Reset" : "Zurücksetzen", "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen", + "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}", "Share Expiration" : "Freigabe-Ablaufdatum", "group" : "Gruppe", "conversation" : "Unterhaltung", @@ -309,6 +310,7 @@ OC.L10N.register( "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 IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", + "Federated cloud ID" : "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", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 4b64c5b2627..056ae0275de 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -183,6 +183,7 @@ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben", "Reset" : "Zurücksetzen", "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen", + "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}", "Share Expiration" : "Freigabe-Ablaufdatum", "group" : "Gruppe", "conversation" : "Unterhaltung", @@ -307,6 +308,7 @@ "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 IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", + "Federated cloud ID" : "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", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 5ac99f9f986..f20c9209224 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -185,6 +185,7 @@ OC.L10N.register( "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben", "Reset" : "Zurücksetzen", "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen", + "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}", "Share Expiration" : "Freigabe-Ablaufdatum", "group" : "Gruppe", "conversation" : "Unterhaltung", @@ -309,6 +310,7 @@ OC.L10N.register( "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 IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", + "Federated cloud ID" : "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", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index ec845d1caf8..14112761270 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -183,6 +183,7 @@ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben", "Reset" : "Zurücksetzen", "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen", + "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}", "Share Expiration" : "Freigabe-Ablaufdatum", "group" : "Gruppe", "conversation" : "Unterhaltung", @@ -307,6 +308,7 @@ "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 IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs", "Share with accounts and teams" : "Teile mit Konten und Teams", + "Federated cloud ID" : "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", diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js index 78689676661..b2840f2179b 100644 --- a/apps/files_sharing/l10n/et_EE.js +++ b/apps/files_sharing/l10n/et_EE.js @@ -185,6 +185,7 @@ OC.L10N.register( "Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust", "Reset" : "Lähtesta", "Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta", + "Share expiration: {date}" : "Jagamise aegumine: {date}", "Share Expiration" : "Jagamise aegumine", "group" : "grupp", "conversation" : "vestlus", @@ -309,6 +310,7 @@ OC.L10N.register( "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.", "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", "Share with accounts and teams" : "Jaga kasutajate ja tiimidega", + "Federated cloud ID" : "Liitpilve tunnus", "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus", "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu", "Expires {relativetime}" : "Aegub {relativetime}", diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json index d1a83294120..a8ba5ef57bb 100644 --- a/apps/files_sharing/l10n/et_EE.json +++ b/apps/files_sharing/l10n/et_EE.json @@ -183,6 +183,7 @@ "Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust", "Reset" : "Lähtesta", "Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta", + "Share expiration: {date}" : "Jagamise aegumine: {date}", "Share Expiration" : "Jagamise aegumine", "group" : "grupp", "conversation" : "vestlus", @@ -307,6 +308,7 @@ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.", "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega", "Share with accounts and teams" : "Jaga kasutajate ja tiimidega", + "Federated cloud ID" : "Liitpilve tunnus", "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus", "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu", "Expires {relativetime}" : "Aegub {relativetime}", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 2da7d326673..7567511b268 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -137,7 +137,9 @@ OC.L10N.register( "Link copied to clipboard" : "Ссылка скопирована в буфер обмена", "Email already added" : "Адрес электронной почты уже добавлен", "Invalid email address" : "Неверный адрес электронной почты", + "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"], "_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"], + "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"], "You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.", "Share link" : "Общий доступ по ссылке", "Copy to clipboard" : "Копировать в буфер обмена", @@ -158,8 +160,10 @@ OC.L10N.register( "Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.", "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.", "Close" : "Закрыть", + "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"], "Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.", "File request created" : "Создан запрос на файл", + "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"], "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}", "Error creating the share" : "Ошибка создания общего доступа", "Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}", @@ -181,6 +185,8 @@ OC.L10N.register( "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов", "Reset" : "Сброс", "Reset folder to system default" : "Сбросить папку к значениям по умолчанию", + "Share expiration: {date}" : "Срок действия общего ресурса: {date}", + "Share Expiration" : "Срок действия общего ресурса", "group" : "группа", "conversation" : "беседа", "remote" : "на другом сервере", @@ -244,11 +250,14 @@ OC.L10N.register( "Deck board" : "Доска", "ScienceMesh" : "ScienceMesh", "on {server}" : "на {server}", + "Enter external recipients" : "Введите внешних получателей", + "Search for internal recipients" : "Поиск внутренних получателей", "Note from" : "Примечание от", "Note:" : "Примечание:", "File drop" : "Приём файлов", "Upload files to {foldername}." : "Загрузка файлов в {foldername}.", "By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.", + "Successfully uploaded files" : "Файлы успешно загружены", "View terms of service" : "Ознакомиться с условиями предоставления услуг", "Terms of service" : "Условия использования", "Share with {userName}" : "Поделиться с {userName}", @@ -265,6 +274,7 @@ OC.L10N.register( "Edit" : "Редактировать", "Share" : "Поделиться", "Delete" : "Удалить", + "Password field cannot be empty" : "Поле пароля не может быть пустым", "Replace current password" : "Заменить текущий пароль", "Failed to generate a new token" : "Не удалось сгенерировать новый токен", "Allow upload and editing" : "Разрешить приём и редактирование", @@ -272,6 +282,10 @@ OC.L10N.register( "Upload only" : "Только загружать", "Advanced settings" : "Расширенные параметры", "Share label" : "Метка общего доступа", + "Share link token" : "Токен ссылки на общий ресурс", + "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." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.", + "Generating…" : "Создание…", + "Generate new token" : "Создать новый токен", "Set password" : "Задать пароль", "Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}", "Password expired" : "Срок действия пароля истёк", @@ -282,6 +296,7 @@ OC.L10N.register( "Allow download and sync" : "Разрешить загрузку и синхронизацию", "Note to recipient" : "Примечание для получателя", "Enter a note for the share recipient" : "Введите примечание для получателя", + "Show files in grid view" : "Показать файлы в виде сетки", "Delete share" : "Удалить общий ресурс", "Others with access" : "Другие пользователи, имеющие доступ", "No other accounts with access found" : "Других учетных записей с доступом не найдено", @@ -295,13 +310,18 @@ OC.L10N.register( "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 and teams" : "Поделиться с аккаунтами и командами", + "Federated cloud ID" : "Федеративный облачный ID", + "Email, federated cloud ID" : "Электронная почта, федеративный облачный ID", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", "Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ", "Internal shares" : "Внутренние ссылки", + "Internal shares explanation" : "Пояснение к внутренним общим ресурсам", "External shares" : "Внешние ссылки", + "External shares explanation" : "Пояснение к внешним общим ресурсам", "Additional shares" : "Дополнительные ссылки", + "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам", "Link to a file" : "Ссылка на файл", "_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"], "Open in Files" : "Открыть в Файлах", @@ -357,10 +377,20 @@ OC.L10N.register( "Share expiry date saved" : "Дата истечения срока общего доступа сохранена", "Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено", "Share label saved" : "Метка общего доступа сохранена", + "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено", "Share password saved" : "Пароль общего доступа сохранен", "Share permissions saved" : "Разрешения общего доступа сохранены", + "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.", "Upload files to {folder}" : "Загрузка файлов в {folder}", + "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.", + "Names must not be empty." : "Имя не может быть пустым.", + "Names must not start with a dot." : "Имя не должно начинаться с точки.", + "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.", + "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.", + "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.", + "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».", + "Invalid name." : "Недопустимое имя.", "Shared by" : "Поделился", "Shared with" : "Общий доступ", "Password created successfully" : "Пароль создан", @@ -393,6 +423,8 @@ OC.L10N.register( "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку", "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете", "Download all files" : "Скачать все файлы", + "_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} адресов электронной почты"], "Search for share recipients" : "Найти больше получателей общего ресурса", "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.", diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 2179703dd71..a84dbdd18ab 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -135,7 +135,9 @@ "Link copied to clipboard" : "Ссылка скопирована в буфер обмена", "Email already added" : "Адрес электронной почты уже добавлен", "Invalid email address" : "Неверный адрес электронной почты", + "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"], "_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"], + "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"], "You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.", "Share link" : "Общий доступ по ссылке", "Copy to clipboard" : "Копировать в буфер обмена", @@ -156,8 +158,10 @@ "Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.", "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.", "Close" : "Закрыть", + "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"], "Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.", "File request created" : "Создан запрос на файл", + "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"], "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}", "Error creating the share" : "Ошибка создания общего доступа", "Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}", @@ -179,6 +183,8 @@ "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов", "Reset" : "Сброс", "Reset folder to system default" : "Сбросить папку к значениям по умолчанию", + "Share expiration: {date}" : "Срок действия общего ресурса: {date}", + "Share Expiration" : "Срок действия общего ресурса", "group" : "группа", "conversation" : "беседа", "remote" : "на другом сервере", @@ -242,11 +248,14 @@ "Deck board" : "Доска", "ScienceMesh" : "ScienceMesh", "on {server}" : "на {server}", + "Enter external recipients" : "Введите внешних получателей", + "Search for internal recipients" : "Поиск внутренних получателей", "Note from" : "Примечание от", "Note:" : "Примечание:", "File drop" : "Приём файлов", "Upload files to {foldername}." : "Загрузка файлов в {foldername}.", "By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.", + "Successfully uploaded files" : "Файлы успешно загружены", "View terms of service" : "Ознакомиться с условиями предоставления услуг", "Terms of service" : "Условия использования", "Share with {userName}" : "Поделиться с {userName}", @@ -263,6 +272,7 @@ "Edit" : "Редактировать", "Share" : "Поделиться", "Delete" : "Удалить", + "Password field cannot be empty" : "Поле пароля не может быть пустым", "Replace current password" : "Заменить текущий пароль", "Failed to generate a new token" : "Не удалось сгенерировать новый токен", "Allow upload and editing" : "Разрешить приём и редактирование", @@ -270,6 +280,10 @@ "Upload only" : "Только загружать", "Advanced settings" : "Расширенные параметры", "Share label" : "Метка общего доступа", + "Share link token" : "Токен ссылки на общий ресурс", + "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." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.", + "Generating…" : "Создание…", + "Generate new token" : "Создать новый токен", "Set password" : "Задать пароль", "Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}", "Password expired" : "Срок действия пароля истёк", @@ -280,6 +294,7 @@ "Allow download and sync" : "Разрешить загрузку и синхронизацию", "Note to recipient" : "Примечание для получателя", "Enter a note for the share recipient" : "Введите примечание для получателя", + "Show files in grid view" : "Показать файлы в виде сетки", "Delete share" : "Удалить общий ресурс", "Others with access" : "Другие пользователи, имеющие доступ", "No other accounts with access found" : "Других учетных записей с доступом не найдено", @@ -293,13 +308,18 @@ "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 and teams" : "Поделиться с аккаунтами и командами", + "Federated cloud ID" : "Федеративный облачный ID", + "Email, federated cloud ID" : "Электронная почта, федеративный облачный ID", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", "Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ", "Internal shares" : "Внутренние ссылки", + "Internal shares explanation" : "Пояснение к внутренним общим ресурсам", "External shares" : "Внешние ссылки", + "External shares explanation" : "Пояснение к внешним общим ресурсам", "Additional shares" : "Дополнительные ссылки", + "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам", "Link to a file" : "Ссылка на файл", "_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"], "Open in Files" : "Открыть в Файлах", @@ -355,10 +375,20 @@ "Share expiry date saved" : "Дата истечения срока общего доступа сохранена", "Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено", "Share label saved" : "Метка общего доступа сохранена", + "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено", "Share password saved" : "Пароль общего доступа сохранен", "Share permissions saved" : "Разрешения общего доступа сохранены", + "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.", "Upload files to {folder}" : "Загрузка файлов в {folder}", + "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.", + "Names must not be empty." : "Имя не может быть пустым.", + "Names must not start with a dot." : "Имя не должно начинаться с точки.", + "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.", + "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.", + "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.", + "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».", + "Invalid name." : "Недопустимое имя.", "Shared by" : "Поделился", "Shared with" : "Общий доступ", "Password created successfully" : "Пароль создан", @@ -391,6 +421,8 @@ "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку", "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете", "Download all files" : "Скачать все файлы", + "_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} адресов электронной почты"], "Search for share recipients" : "Найти больше получателей общего ресурса", "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 6c3a5828007..05be7bc3722 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -185,6 +185,7 @@ OC.L10N.register( "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar", "Reset" : "Återställ", "Reset folder to system default" : "Återställ mapp till system-standard", + "Share expiration: {date}" : "Delningens utgång: {date}", "Share Expiration" : "Delningens utgång", "group" : "grupp", "conversation" : "konversation", @@ -309,6 +310,7 @@ OC.L10N.register( "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", + "Federated cloud ID" : "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}", @@ -378,8 +380,11 @@ OC.L10N.register( "Share note for recipient saved" : "Delningens notering för mottagare sparad", "Share password saved" : "Lösenord för delning sparad", "Share permissions saved" : "Delningsbehörighet sparad", + "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.", "Upload files to {folder}" : "Ladda upp filer till {folder}", + "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.", + "Names must not be empty." : "Namn får inte vara tomt.", "Names must not start with a dot." : "Namn får inte börja med en punkt.", "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.", "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 58d5256c760..b675aecf7d0 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -183,6 +183,7 @@ "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar", "Reset" : "Återställ", "Reset folder to system default" : "Återställ mapp till system-standard", + "Share expiration: {date}" : "Delningens utgång: {date}", "Share Expiration" : "Delningens utgång", "group" : "grupp", "conversation" : "konversation", @@ -307,6 +308,7 @@ "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", + "Federated cloud ID" : "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}", @@ -376,8 +378,11 @@ "Share note for recipient saved" : "Delningens notering för mottagare sparad", "Share password saved" : "Lösenord för delning sparad", "Share permissions saved" : "Delningsbehörighet sparad", + "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.", "Upload files to {folder}" : "Ladda upp filer till {folder}", + "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.", + "Names must not be empty." : "Namn får inte vara tomt.", "Names must not start with a dot." : "Namn får inte börja med en punkt.", "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.", "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index a3406810090..764bd713123 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -185,6 +185,7 @@ OC.L10N.register( "Set default folder for accepted shares" : "為接受的分享設定預設資料夾", "Reset" : "重設", "Reset folder to system default" : "將資料夾重設回系統預設", + "Share expiration: {date}" : "分享到期日:{date}", "Share Expiration" : "分享過期", "group" : "群組", "conversation" : "對話", @@ -309,6 +310,7 @@ OC.L10N.register( "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" : "與帳號及團隊分享", + "Federated cloud ID" : "聯邦雲端 ID", "Email, federated cloud ID" : "電子郵件、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index b2c14b0776f..580be7e28e2 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -183,6 +183,7 @@ "Set default folder for accepted shares" : "為接受的分享設定預設資料夾", "Reset" : "重設", "Reset folder to system default" : "將資料夾重設回系統預設", + "Share expiration: {date}" : "分享到期日:{date}", "Share Expiration" : "分享過期", "group" : "群組", "conversation" : "對話", @@ -307,6 +308,7 @@ "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" : "與帳號及團隊分享", + "Federated cloud ID" : "聯邦雲端 ID", "Email, federated cloud ID" : "電子郵件、聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue index 781626a1ec9..702b876306f 100644 --- a/apps/files_sharing/src/components/SharingEntryLink.vue +++ b/apps/files_sharing/src/components/SharingEntryLink.vue @@ -223,13 +223,14 @@ </template> <script> +import { showError, showSuccess } from '@nextcloud/dialogs' import { emit } from '@nextcloud/event-bus' +import { t } from '@nextcloud/l10n' +import moment from '@nextcloud/moment' import { generateUrl, getBaseUrl } from '@nextcloud/router' -import { showError, showSuccess } from '@nextcloud/dialogs' import { ShareType } from '@nextcloud/sharing' -import VueQrcode from '@chenfengyuan/vue-qrcode' -import moment from '@nextcloud/moment' +import VueQrcode from '@chenfengyuan/vue-qrcode' import NcActionButton from '@nextcloud/vue/components/NcActionButton' import NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox' import NcActionInput from '@nextcloud/vue/components/NcActionInput' @@ -258,7 +259,7 @@ import GeneratePassword from '../utils/GeneratePassword.ts' import Share from '../models/Share.ts' import SharesMixin from '../mixins/SharesMixin.js' import ShareDetails from '../mixins/ShareDetails.js' -import { getLoggerBuilder } from '@nextcloud/logger' +import logger from '../services/logger.ts' export default { name: 'SharingEntryLink', @@ -313,10 +314,6 @@ export default { ExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state, ExternalShareActions: OCA.Sharing.ExternalShareActions.state, - logger: getLoggerBuilder() - .setApp('files_sharing') - .detectUser() - .build(), // tracks whether modal should be opened or not showQRCode: false, @@ -330,6 +327,8 @@ export default { * @return {string} */ title() { + const l10nOptions = { escape: false /* no escape as this string is already escaped by Vue */ } + // if we have a valid existing share (not pending) if (this.share && this.share.id) { if (!this.isShareOwner && this.share.ownerDisplayName) { @@ -337,26 +336,26 @@ export default { return t('files_sharing', '{shareWith} by {initiator}', { shareWith: this.share.shareWith, initiator: this.share.ownerDisplayName, - }) + }, l10nOptions) } return t('files_sharing', 'Shared via link by {initiator}', { initiator: this.share.ownerDisplayName, - }) + }, l10nOptions) } if (this.share.label && this.share.label.trim() !== '') { if (this.isEmailShareType) { if (this.isFileRequest) { return t('files_sharing', 'File request ({label})', { label: this.share.label.trim(), - }) + }, l10nOptions) } return t('files_sharing', 'Mail share ({label})', { label: this.share.label.trim(), - }) + }, l10nOptions) } return t('files_sharing', 'Share link ({label})', { label: this.share.label.trim(), - }) + }, l10nOptions) } if (this.isEmailShareType) { if (!this.share.shareWith || this.share.shareWith.trim() === '') { @@ -391,6 +390,7 @@ export default { } return null }, + passwordExpirationTime() { if (this.share.passwordExpirationTime === null) { return null @@ -613,7 +613,7 @@ export default { * @param {boolean} shareReviewComplete if the share was reviewed */ async onNewLinkShare(shareReviewComplete = false) { - this.logger.debug('onNewLinkShare called (with this.share)', this.share) + logger.debug('onNewLinkShare called (with this.share)', this.share) // do not run again if already loading if (this.loading) { return @@ -628,7 +628,7 @@ export default { shareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate) } - this.logger.debug('Missing required properties?', this.enforcedPropertiesMissing) + logger.debug('Missing required properties?', this.enforcedPropertiesMissing) // Do not push yet if we need a password or an expiration date: show pending menu // A share would require a review for example is default expiration date is set but not enforced, this allows // the user to review the share and remove the expiration date if they don't want it @@ -636,7 +636,7 @@ export default { this.pending = true this.shareCreationComplete = false - this.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...') + logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...') // ELSE, show the pending popovermenu // if password default or enforced, pre-fill with random one @@ -664,13 +664,13 @@ export default { // if the share is valid, create it on the server if (this.checkShare(this.share)) { try { - this.logger.info('Sending existing share to server', this.share) + logger.info('Sending existing share to server', this.share) await this.pushNewLinkShare(this.share, true) this.shareCreationComplete = true - this.logger.info('Share created on server', this.share) + logger.info('Share created on server', this.share) } catch (e) { this.pending = false - this.logger.error('Error creating share', e) + logger.error('Error creating share', e) return false } return true diff --git a/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php index cd3fb0568fa..75bee35d58a 100644 --- a/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php +++ b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php @@ -16,6 +16,7 @@ use OCP\EventDispatcher\Event; use OCP\IConfig; use OCP\L10N\IFactory; use OCP\Share\IManager; +use OCP\Util; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Test\TestCase; @@ -37,6 +38,21 @@ class LoadAdditionalListenerTest extends TestCase { $this->factory = $this->createMock(IFactory::class); $this->initialStateService = $this->createMock(InitialStateService::class); $this->config = $this->createMock(IConfig::class); + + /* Empty static array to avoid inter-test conflicts */ + \OC_Util::$styles = []; + self::invokePrivate(Util::class, 'scripts', [[]]); + self::invokePrivate(Util::class, 'scriptDeps', [[]]); + self::invokePrivate(Util::class, 'scriptsInit', [[]]); + } + + protected function tearDown(): void { + parent::tearDown(); + + \OC_Util::$styles = []; + self::invokePrivate(Util::class, 'scripts', [[]]); + self::invokePrivate(Util::class, 'scriptDeps', [[]]); + self::invokePrivate(Util::class, 'scriptsInit', [[]]); } public function testHandleIgnoresNonMatchingEvent(): void { @@ -61,7 +77,7 @@ class LoadAdditionalListenerTest extends TestCase { $this->overwriteService(InitialStateService::class, $this->initialStateService); $this->overwriteService(IConfig::class, $this->config); - $scriptsBefore = \OCP\Util::getScripts(); + $scriptsBefore = Util::getScripts(); $this->assertNotContains('files_sharing/l10n/language_mock', $scriptsBefore); $this->assertNotContains('files_sharing/js/additionalScripts', $scriptsBefore); $this->assertNotContains('files_sharing/js/init', $scriptsBefore); @@ -71,14 +87,12 @@ class LoadAdditionalListenerTest extends TestCase { $listener->handle($this->event); // assert array $scripts contains the expected scripts - $scriptsAfter = \OCP\Util::getScripts(); + $scriptsAfter = Util::getScripts(); $this->assertContains('files_sharing/l10n/language_mock', $scriptsAfter); $this->assertContains('files_sharing/js/additionalScripts', $scriptsAfter); $this->assertNotContains('files_sharing/js/init', $scriptsAfter); $this->assertContains('files_sharing/css/icons', \OC_Util::$styles); - - $this->assertTrue(true); } public function testHandleWithLoadAdditionalScriptsEventWithShareApiEnabled(): void { @@ -92,17 +106,15 @@ class LoadAdditionalListenerTest extends TestCase { $this->overwriteService(IConfig::class, $this->config); $this->overwriteService(IFactory::class, $this->factory); - $scriptsBefore = \OCP\Util::getScripts(); + $scriptsBefore = Util::getScripts(); $this->assertNotContains('files_sharing/js/init', $scriptsBefore); // Util static methods can't be easily mocked, so just ensure no exceptions $listener->handle($this->event); - $scriptsAfter = \OCP\Util::getScripts(); + $scriptsAfter = Util::getScripts(); // assert array $scripts contains the expected scripts $this->assertContains('files_sharing/js/init', $scriptsAfter); - - $this->assertTrue(true); } } diff --git a/apps/files_trashbin/l10n/de.js b/apps/files_trashbin/l10n/de.js index 75a7ce7d443..0c623ec6ad0 100644 --- a/apps/files_trashbin/l10n/de.js +++ b/apps/files_trashbin/l10n/de.js @@ -16,6 +16,7 @@ OC.L10N.register( "Original location" : "Ursprünglicher Ort", "Deleted by" : "Gelöscht von", "Deleted" : "Gelöscht", + "few seconds ago" : "Gerade eben", "A long time ago" : "Vor langer Zeit", "Unknown" : "Unbekannt", "All files" : "Alle Dateien", diff --git a/apps/files_trashbin/l10n/de.json b/apps/files_trashbin/l10n/de.json index 6085c3ba2ee..d68fd5e470b 100644 --- a/apps/files_trashbin/l10n/de.json +++ b/apps/files_trashbin/l10n/de.json @@ -14,6 +14,7 @@ "Original location" : "Ursprünglicher Ort", "Deleted by" : "Gelöscht von", "Deleted" : "Gelöscht", + "few seconds ago" : "Gerade eben", "A long time ago" : "Vor langer Zeit", "Unknown" : "Unbekannt", "All files" : "Alle Dateien", diff --git a/apps/files_trashbin/l10n/de_DE.js b/apps/files_trashbin/l10n/de_DE.js index 179a3689d7e..27b41dcea4d 100644 --- a/apps/files_trashbin/l10n/de_DE.js +++ b/apps/files_trashbin/l10n/de_DE.js @@ -16,6 +16,7 @@ OC.L10N.register( "Original location" : "Ursprünglicher Ort", "Deleted by" : "Gelöscht von", "Deleted" : "Gelöscht", + "few seconds ago" : "Gerade eben", "A long time ago" : "Vor langer Zeit", "Unknown" : "Unbekannt", "All files" : "Alle Dateien", diff --git a/apps/files_trashbin/l10n/de_DE.json b/apps/files_trashbin/l10n/de_DE.json index 974d0a02b90..c4f1ca5ea43 100644 --- a/apps/files_trashbin/l10n/de_DE.json +++ b/apps/files_trashbin/l10n/de_DE.json @@ -14,6 +14,7 @@ "Original location" : "Ursprünglicher Ort", "Deleted by" : "Gelöscht von", "Deleted" : "Gelöscht", + "few seconds ago" : "Gerade eben", "A long time ago" : "Vor langer Zeit", "Unknown" : "Unbekannt", "All files" : "Alle Dateien", diff --git a/apps/files_trashbin/l10n/sv.js b/apps/files_trashbin/l10n/sv.js index fd50574e6fc..265736af1c8 100644 --- a/apps/files_trashbin/l10n/sv.js +++ b/apps/files_trashbin/l10n/sv.js @@ -16,6 +16,7 @@ OC.L10N.register( "Original location" : "Ursprunglig plats", "Deleted by" : "Raderad av", "Deleted" : "Borttagen", + "few seconds ago" : "några sekunder sedan", "A long time ago" : "För länge sedan", "Unknown" : "Okänd", "All files" : "Alla filer", diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json index 1bf54bf7379..c2ebb95fced 100644 --- a/apps/files_trashbin/l10n/sv.json +++ b/apps/files_trashbin/l10n/sv.json @@ -14,6 +14,7 @@ "Original location" : "Ursprunglig plats", "Deleted by" : "Raderad av", "Deleted" : "Borttagen", + "few seconds ago" : "några sekunder sedan", "A long time ago" : "För länge sedan", "Unknown" : "Okänd", "All files" : "Alla filer", diff --git a/apps/provisioning_api/l10n/ru.js b/apps/provisioning_api/l10n/ru.js index 604a71392e7..7fa4c8d7e81 100644 --- a/apps/provisioning_api/l10n/ru.js +++ b/apps/provisioning_api/l10n/ru.js @@ -1,8 +1,33 @@ OC.L10N.register( "provisioning_api", { - "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.", + "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.", + "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя", "User already exists" : "Пользователь уже существует", + "Group %1$s does not exist" : "Группа %1$s не существует", + "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s", + "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)", + "Sub-admin group does not exist" : "Группа субадминистратора не существует", + "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов", + "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов", + "Invalid password value" : "Некорректное значение пароля", + "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.", + "Required email address was not provided" : "Не указан обязательный адрес электронной почты", + "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s", + "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение", + "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе", + "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями", + "Invalid language" : "Недопустимый язык", + "Invalid locale" : "Недопустимая локаль", + "Invalid first day of week" : "Недопустимый первый день недели", + "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов", + "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором", + "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором", + "User does not exist" : "Пользователь не существует", + "Group does not exist" : "Группа не существует", + "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы", + "Email address not available" : "Адрес электронной почты недоступен", + "Sending email failed" : "Не удалось отправить письмо", "Email confirmation" : "Подтверждение электронной почты", "To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.", "Confirm" : "Подтвердить", @@ -12,7 +37,7 @@ OC.L10N.register( "An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.", "Email confirmation successful" : "Электронная почта подтверждена", "Provisioning API" : "Provisioning API", - "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.", - "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера." + "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.", + "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера." }, "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/provisioning_api/l10n/ru.json b/apps/provisioning_api/l10n/ru.json index d2e5e4f12cc..41989b6ba29 100644 --- a/apps/provisioning_api/l10n/ru.json +++ b/apps/provisioning_api/l10n/ru.json @@ -1,6 +1,31 @@ { "translations": { - "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.", + "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.", + "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя", "User already exists" : "Пользователь уже существует", + "Group %1$s does not exist" : "Группа %1$s не существует", + "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s", + "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)", + "Sub-admin group does not exist" : "Группа субадминистратора не существует", + "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов", + "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов", + "Invalid password value" : "Некорректное значение пароля", + "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.", + "Required email address was not provided" : "Не указан обязательный адрес электронной почты", + "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s", + "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение", + "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе", + "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями", + "Invalid language" : "Недопустимый язык", + "Invalid locale" : "Недопустимая локаль", + "Invalid first day of week" : "Недопустимый первый день недели", + "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов", + "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором", + "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором", + "User does not exist" : "Пользователь не существует", + "Group does not exist" : "Группа не существует", + "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы", + "Email address not available" : "Адрес электронной почты недоступен", + "Sending email failed" : "Не удалось отправить письмо", "Email confirmation" : "Подтверждение электронной почты", "To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.", "Confirm" : "Подтвердить", @@ -10,7 +35,7 @@ "An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.", "Email confirmation successful" : "Электронная почта подтверждена", "Provisioning API" : "Provisioning API", - "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.", - "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера." + "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.", + "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера." },"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/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js index 3f59ad6b900..0ee054c416f 100644 --- a/apps/sharebymail/l10n/ru.js +++ b/apps/sharebymail/l10n/ru.js @@ -18,12 +18,22 @@ OC.L10N.register( "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.", "Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты", "Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты", + "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами", "Note:" : "Примечание:", + "This share is valid until %s at midnight" : "Общий ресурс будет действителен до полуночи %s", + "Expiration:" : "Срок действия:", "Open %s" : "Открыть %s", "%1$s via %2$s" : "%1$s через %2$s", + "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s поделился(ась) с вами %2$s. Вы должны были получить отдельное письмо со ссылкой для доступа.", + "Password to access %1$s shared to you by %2$s" : "Пароль для доступа к %1$s, предоставленному вам пользователем %2$s", "Password to access %s" : "Пароль для доступа к %s", "It is protected with the following password:" : "Доступ защищён следующим паролем: ", "This password will expire at %s" : "Срок действия этого пароля завершится %s", + "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:", + "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить", + "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами", + "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что поделились %1$s с %2$s. Ссылка на доступ уже отправлена получателю. Согласно политике безопасности, установленной администратором %3$s, каждый общий ресурс должен быть защищён паролем, и его запрещено отправлять пароль напрямую получателю. Пожалуйста, передайте пароль самостоятельно.", + "Password to access %1$s shared by you with %2$s" : "Пароль для доступа к %1$s, которым вы поделились с %2$s", "This is the password:" : "Пароль: ", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json index b0b3cf028dd..d7bf86c5657 100644 --- a/apps/sharebymail/l10n/ru.json +++ b/apps/sharebymail/l10n/ru.json @@ -16,12 +16,22 @@ "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.", "Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты", "Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты", + "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами", "Note:" : "Примечание:", + "This share is valid until %s at midnight" : "Общий ресурс будет действителен до полуночи %s", + "Expiration:" : "Срок действия:", "Open %s" : "Открыть %s", "%1$s via %2$s" : "%1$s через %2$s", + "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s поделился(ась) с вами %2$s. Вы должны были получить отдельное письмо со ссылкой для доступа.", + "Password to access %1$s shared to you by %2$s" : "Пароль для доступа к %1$s, предоставленному вам пользователем %2$s", "Password to access %s" : "Пароль для доступа к %s", "It is protected with the following password:" : "Доступ защищён следующим паролем: ", "This password will expire at %s" : "Срок действия этого пароля завершится %s", + "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:", + "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить", + "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами", + "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что поделились %1$s с %2$s. Ссылка на доступ уже отправлена получателю. Согласно политике безопасности, установленной администратором %3$s, каждый общий ресурс должен быть защищён паролем, и его запрещено отправлять пароль напрямую получателю. Пожалуйста, передайте пароль самостоятельно.", + "Password to access %1$s shared by you with %2$s" : "Пароль для доступа к %1$s, которым вы поделились с %2$s", "This is the password:" : "Пароль: ", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/systemtags/l10n/ru.js b/apps/systemtags/l10n/ru.js index 0a63f20736e..527a2c47aad 100644 --- a/apps/systemtags/l10n/ru.js +++ b/apps/systemtags/l10n/ru.js @@ -65,18 +65,39 @@ OC.L10N.register( "Delete" : "Удалить", "Reset" : "Сбросить", "Loading …" : "Загрузка…", + "_{tag1} will be set and {tag2} will be removed from 1 file._::_{tag1} will be set and {tag2} will be removed from {count} files._" : ["{tag1} будет добавлен, а {tag2} будет удалён из 1 файла.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов."], + "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag}будет добавлен к 1 файлу.","{tag} будет добавлен к {count} файлам.","{tag} будет добавлен к {count} файлов.","{tag} будет добавлен к {count} файлов."], + "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} будет удалён из 1 файла.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов."], + "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} и {lastTag} будут добавлены к 1 файлу.","{tags} и {lastTag} будут добавлены к {count} файлам.","{tags} и {lastTag} будут добавлены к {count}файлам.","{tags} и {lastTag} будут добавлены к {count} файлам."], + "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} и {lastTag} будут удалены из 1 файла.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов."], + "{displayName} (hidden)" : "{displayName} (скрыто)", + "{displayName} (restricted)" : "{displayName} (ограничено)", + "Only admins can create new tags" : "Только администраторы могут создать новые метки", "Failed to apply tags changes" : "Не удалось применить изменения тегов", + "File tags modification canceled" : "Изменение меток отменено", "Manage tags" : "Управление метками", + "Applying tags changes…" : "Изменение меток…", "Search or create tag" : "Найти или создать тег", + "Search tag" : "Найти метку", + "Change tag color" : "Изменить цвет метки", "Create new tag" : "Создать новый тег", + "Select or create tags to apply to all selected files" : "Выберите или создайте метки для применения ко всем выбранным файлам", + "Select tags to apply to all selected files" : "Выберите метки для применения ко всем выбранным файлам", "Cancel" : "Отмена", "Apply changes" : "Применить изменения", "Failed to load tags" : "Не удалось загрузить метки", "Failed to load selected tags" : "Не удалось загрузить выбранный тег", "Failed to select tag" : "Не удалось выбрать тег", + "System admin disabled tag creation. You can only use existing ones." : "Создание меток отключено системным администратором. Вы можете использовать только существующие.", "Loading collaborative tags …" : "Загрузка совместных тегов ...", "Search or create collaborative tags" : "Поиск или создание совместных тегов", "No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега", + "Unable to update setting" : "Не удалось обновить настройку", + "System tag creation is now restricted to administrators" : "Создание системных меток теперь разрешено только администраторам", + "System tag creation is now allowed for everybody" : "Создание системных меток теперь разрешено всем пользователям", + "System tag management" : "Управление системными метками", + "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Если включено, только администраторы смогут создавать и редактировать метки. Пользователи всё ещё смогут назначать и удалять их с файлов.", + "Restrict tag creation and editing to administrators" : "Разрешить создание и редактирование меток только администраторам", "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Совместные теги доступны для всех пользователей. Ограниченные теги видны пользователям, но не могут быть назначены ими. Невидимые теги предназначены для внутреннего использования, поскольку пользователи не могут их видеть или назначать.", "Assigned collaborative tags" : "Присвоенные теги для совместной работы", "Open in Files" : "Открыть в приложении «Файлы»", @@ -86,6 +107,7 @@ OC.L10N.register( "Failed to load tag" : "Не удалось загрузить тег", "Failed to load last used tags" : "Не удалось загрузить последние использованные метки", "Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»", + "A tag with the same name already exists" : "Метка с таким именем уже существует", "Failed to load tags for file" : "Не удалось загрузить метки для файла", "Failed to set tag for file" : "Не удалось поставить метку файлу", "Failed to delete tag for file" : "Не удалось удалить метку у файла" diff --git a/apps/systemtags/l10n/ru.json b/apps/systemtags/l10n/ru.json index a94c3a94a2e..1b74ab93bc1 100644 --- a/apps/systemtags/l10n/ru.json +++ b/apps/systemtags/l10n/ru.json @@ -63,18 +63,39 @@ "Delete" : "Удалить", "Reset" : "Сбросить", "Loading …" : "Загрузка…", + "_{tag1} will be set and {tag2} will be removed from 1 file._::_{tag1} will be set and {tag2} will be removed from {count} files._" : ["{tag1} будет добавлен, а {tag2} будет удалён из 1 файла.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов."], + "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag}будет добавлен к 1 файлу.","{tag} будет добавлен к {count} файлам.","{tag} будет добавлен к {count} файлов.","{tag} будет добавлен к {count} файлов."], + "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} будет удалён из 1 файла.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов."], + "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} и {lastTag} будут добавлены к 1 файлу.","{tags} и {lastTag} будут добавлены к {count} файлам.","{tags} и {lastTag} будут добавлены к {count}файлам.","{tags} и {lastTag} будут добавлены к {count} файлам."], + "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} и {lastTag} будут удалены из 1 файла.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов."], + "{displayName} (hidden)" : "{displayName} (скрыто)", + "{displayName} (restricted)" : "{displayName} (ограничено)", + "Only admins can create new tags" : "Только администраторы могут создать новые метки", "Failed to apply tags changes" : "Не удалось применить изменения тегов", + "File tags modification canceled" : "Изменение меток отменено", "Manage tags" : "Управление метками", + "Applying tags changes…" : "Изменение меток…", "Search or create tag" : "Найти или создать тег", + "Search tag" : "Найти метку", + "Change tag color" : "Изменить цвет метки", "Create new tag" : "Создать новый тег", + "Select or create tags to apply to all selected files" : "Выберите или создайте метки для применения ко всем выбранным файлам", + "Select tags to apply to all selected files" : "Выберите метки для применения ко всем выбранным файлам", "Cancel" : "Отмена", "Apply changes" : "Применить изменения", "Failed to load tags" : "Не удалось загрузить метки", "Failed to load selected tags" : "Не удалось загрузить выбранный тег", "Failed to select tag" : "Не удалось выбрать тег", + "System admin disabled tag creation. You can only use existing ones." : "Создание меток отключено системным администратором. Вы можете использовать только существующие.", "Loading collaborative tags …" : "Загрузка совместных тегов ...", "Search or create collaborative tags" : "Поиск или создание совместных тегов", "No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега", + "Unable to update setting" : "Не удалось обновить настройку", + "System tag creation is now restricted to administrators" : "Создание системных меток теперь разрешено только администраторам", + "System tag creation is now allowed for everybody" : "Создание системных меток теперь разрешено всем пользователям", + "System tag management" : "Управление системными метками", + "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Если включено, только администраторы смогут создавать и редактировать метки. Пользователи всё ещё смогут назначать и удалять их с файлов.", + "Restrict tag creation and editing to administrators" : "Разрешить создание и редактирование меток только администраторам", "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Совместные теги доступны для всех пользователей. Ограниченные теги видны пользователям, но не могут быть назначены ими. Невидимые теги предназначены для внутреннего использования, поскольку пользователи не могут их видеть или назначать.", "Assigned collaborative tags" : "Присвоенные теги для совместной работы", "Open in Files" : "Открыть в приложении «Файлы»", @@ -84,6 +105,7 @@ "Failed to load tag" : "Не удалось загрузить тег", "Failed to load last used tags" : "Не удалось загрузить последние использованные метки", "Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»", + "A tag with the same name already exists" : "Метка с таким именем уже существует", "Failed to load tags for file" : "Не удалось загрузить метки для файла", "Failed to set tag for file" : "Не удалось поставить метку файлу", "Failed to delete tag for file" : "Не удалось удалить метку у файла" diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php index f09295355ac..68bce69f982 100644 --- a/apps/user_ldap/ajax/deleteConfiguration.php +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -1,8 +1,6 @@ <?php use OCA\User_LDAP\Helper; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use OCP\Util; @@ -17,7 +15,7 @@ use OCP\Util; \OC_JSON::callCheck(); $prefix = (string)$_POST['ldap_serverconfig_chooser']; -$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); +$helper = Server::get(Helper::class); if ($helper->deleteServerConfiguration($prefix)) { \OC_JSON::success(); } else { diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index e8746a7c1b1..e5ba6375c73 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -2,8 +2,6 @@ use OCA\User_LDAP\Configuration; use OCA\User_LDAP\Helper; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; /** @@ -16,7 +14,7 @@ use OCP\Server; \OC_JSON::checkAppEnabled('user_ldap'); \OC_JSON::callCheck(); -$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); +$helper = Server::get(Helper::class); $serverConnections = $helper->getServerConfigurationPrefixes(); sort($serverConnections); $lk = array_pop($serverConnections); diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js index d97ec49e13c..a39e92ab1f8 100644 --- a/apps/user_ldap/l10n/gl.js +++ b/apps/user_ldap/l10n/gl.js @@ -61,6 +61,7 @@ OC.L10N.register( "No LDAP base DN was given" : "Non se indicou un DN base de LDAP", "User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global", "Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global", + "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.", "Please login with the new password" : "Acceda co novo contrasinal", "LDAP User backend" : "Infraestrutura do usuario LDAP", "Your password will expire tomorrow." : "O seu contrasinal caduca mañá.", diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json index 952066b7994..58b0658ebf0 100644 --- a/apps/user_ldap/l10n/gl.json +++ b/apps/user_ldap/l10n/gl.json @@ -59,6 +59,7 @@ "No LDAP base DN was given" : "Non se indicou un DN base de LDAP", "User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global", "Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global", + "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.", "Please login with the new password" : "Acceda co novo contrasinal", "LDAP User backend" : "Infraestrutura do usuario LDAP", "Your password will expire tomorrow." : "O seu contrasinal caduca mañá.", diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php index ad13c94c84a..85906b20e9a 100644 --- a/apps/user_ldap/lib/Command/Search.php +++ b/apps/user_ldap/lib/Command/Search.php @@ -12,7 +12,6 @@ use OCA\User_LDAP\Helper; use OCA\User_LDAP\LDAP; use OCA\User_LDAP\User_Proxy; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use Symfony\Component\Console\Command\Command; @@ -83,7 +82,7 @@ class Search extends Command { } protected function execute(InputInterface $input, OutputInterface $output): int { - $helper = new Helper($this->ocConfig, Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldapWrapper = new LDAP(); diff --git a/apps/user_ldap/lib/Command/SetConfig.php b/apps/user_ldap/lib/Command/SetConfig.php index 5a0b65a2c3e..7e9efcf34d0 100644 --- a/apps/user_ldap/lib/Command/SetConfig.php +++ b/apps/user_ldap/lib/Command/SetConfig.php @@ -11,8 +11,6 @@ use OCA\User_LDAP\Configuration; use OCA\User_LDAP\ConnectionFactory; use OCA\User_LDAP\Helper; use OCA\User_LDAP\LDAP; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; @@ -43,7 +41,7 @@ class SetConfig extends Command { } protected function execute(InputInterface $input, OutputInterface $output): int { - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $availableConfigs = $helper->getServerConfigurationPrefixes(); $configID = $input->getArgument('configID'); if (!in_array($configID, $availableConfigs)) { diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php index 78a5f93d29e..b25a2e72b2b 100644 --- a/apps/user_ldap/lib/Connection.php +++ b/apps/user_ldap/lib/Connection.php @@ -11,8 +11,6 @@ use OC\ServerNotAvailableException; use OCA\User_LDAP\Exceptions\ConfigurationIssueException; use OCP\ICache; use OCP\ICacheFactory; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\IL10N; use OCP\Server; use OCP\Util; @@ -156,7 +154,7 @@ class Connection extends LDAPUtility { if ($memcache->isAvailable()) { $this->cache = $memcache->createDistributed(); } - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $this->doNotValidate = !in_array($this->configPrefix, $helper->getServerConfigurationPrefixes()); $this->logger = Server::get(LoggerInterface::class); diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index 27c19e6c4f5..d3abf04fd1e 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -9,7 +9,7 @@ namespace OCA\User_LDAP; use OCP\Cache\CappedMemoryCache; use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\IDBConnection; use OCP\Server; @@ -18,7 +18,7 @@ class Helper { protected CappedMemoryCache $sanitizeDnCache; public function __construct( - private IConfig $config, + private IAppConfig $appConfig, private IDBConnection $connection, ) { $this->sanitizeDnCache = new CappedMemoryCache(10000); @@ -45,21 +45,37 @@ class Helper { * except the default (first) server shall be connected to. * */ - public function getServerConfigurationPrefixes($activeConfigurations = false): array { + public function getServerConfigurationPrefixes(bool $activeConfigurations = false): array { + $all = $this->getAllServerConfigurationPrefixes(); + if (!$activeConfigurations) { + return $all; + } + return array_values(array_filter( + $all, + fn (string $prefix): bool => ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') === '1') + )); + } + + protected function getAllServerConfigurationPrefixes(): array { + $unfilled = ['UNFILLED']; + $prefixes = $this->appConfig->getValueArray('user_ldap', 'configuration_prefixes', $unfilled); + if ($prefixes !== $unfilled) { + return $prefixes; + } + + /* Fallback to browsing key for migration from Nextcloud<32 */ $referenceConfigkey = 'ldap_configuration_active'; $keys = $this->getServersConfig($referenceConfigkey); $prefixes = []; foreach ($keys as $key) { - if ($activeConfigurations && $this->config->getAppValue('user_ldap', $key, '0') !== '1') { - continue; - } - $len = strlen($key) - strlen($referenceConfigkey); $prefixes[] = substr($key, 0, $len); } - asort($prefixes); + sort($prefixes); + + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes); return $prefixes; } @@ -68,46 +84,45 @@ class Helper { * * determines the host for every configured connection * - * @return array an array with configprefix as keys + * @return array<string,string> an array with configprefix as keys * */ - public function getServerConfigurationHosts() { - $referenceConfigkey = 'ldap_host'; - - $keys = $this->getServersConfig($referenceConfigkey); + public function getServerConfigurationHosts(): array { + $prefixes = $this->getServerConfigurationPrefixes(); + $referenceConfigkey = 'ldap_host'; $result = []; - foreach ($keys as $key) { - $len = strlen($key) - strlen($referenceConfigkey); - $prefix = substr($key, 0, $len); - $result[$prefix] = $this->config->getAppValue('user_ldap', $key); + foreach ($prefixes as $prefix) { + $result[$prefix] = $this->appConfig->getValueString('user_ldap', $prefix . $referenceConfigkey); } return $result; } /** - * return the next available configuration prefix - * - * @return string + * return the next available configuration prefix and register it as used */ - public function getNextServerConfigurationPrefix() { - $serverConnections = $this->getServerConfigurationPrefixes(); - - if (count($serverConnections) === 0) { - return 's01'; + public function getNextServerConfigurationPrefix(): string { + $prefixes = $this->getServerConfigurationPrefixes(); + + if (count($prefixes) === 0) { + $prefix = 's01'; + } else { + sort($prefixes); + $lastKey = array_pop($prefixes); + $lastNumber = (int)str_replace('s', '', $lastKey); + $prefix = 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT); } - sort($serverConnections); - $lastKey = array_pop($serverConnections); - $lastNumber = (int)str_replace('s', '', $lastKey); - return 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT); + $prefixes[] = $prefix; + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes); + return $prefix; } private function getServersConfig(string $value): array { $regex = '/' . $value . '$/S'; - $keys = $this->config->getAppKeys('user_ldap'); + $keys = $this->appConfig->getKeys('user_ldap'); $result = []; foreach ($keys as $key) { if (preg_match($regex, $key) === 1) { @@ -125,7 +140,9 @@ class Helper { * @return bool true on success, false otherwise */ public function deleteServerConfiguration($prefix) { - if (!in_array($prefix, self::getServerConfigurationPrefixes())) { + $prefixes = $this->getServerConfigurationPrefixes(); + $index = array_search($prefix, $prefixes); + if ($index === false) { return false; } @@ -144,7 +161,11 @@ class Helper { $query->andWhere($query->expr()->notLike('configkey', $query->createNamedParameter('s%'))); } - $deletedRows = $query->execute(); + $deletedRows = $query->executeStatement(); + + unset($prefixes[$index]); + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', array_values($prefixes)); + return $deletedRows !== 0; } @@ -152,10 +173,13 @@ class Helper { * checks whether there is one or more disabled LDAP configurations */ public function haveDisabledConfigurations(): bool { - $all = $this->getServerConfigurationPrefixes(false); - $active = $this->getServerConfigurationPrefixes(true); - - return count($all) !== count($active) || count($all) === 0; + $all = $this->getServerConfigurationPrefixes(); + foreach ($all as $prefix) { + if ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') !== '1') { + return true; + } + } + return false; } /** diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php index 7cfc473c950..a1309c0c463 100644 --- a/apps/user_ldap/lib/Jobs/CleanUp.php +++ b/apps/user_ldap/lib/Jobs/CleanUp.php @@ -67,7 +67,7 @@ class CleanUp extends TimedJob { if (isset($arguments['helper'])) { $this->ldapHelper = $arguments['helper']; } else { - $this->ldapHelper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $this->ldapHelper = Server::get(Helper::class); } if (isset($arguments['ocConfig'])) { diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php index 014210ca8f0..49868eb68c7 100644 --- a/apps/user_ldap/lib/Settings/Admin.php +++ b/apps/user_ldap/lib/Settings/Admin.php @@ -8,8 +8,6 @@ namespace OCA\User_LDAP\Settings; use OCA\User_LDAP\Configuration; use OCA\User_LDAP\Helper; use OCP\AppFramework\Http\TemplateResponse; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\IL10N; use OCP\Server; use OCP\Settings\IDelegatedSettings; @@ -26,7 +24,7 @@ class Admin implements IDelegatedSettings { * @return TemplateResponse */ public function getForm() { - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $prefixes = $helper->getServerConfigurationPrefixes(); if (count($prefixes) === 0) { $newPrefix = $helper->getNextServerConfigurationPrefix(); diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index 86ce2aff854..eafaeb76403 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -25,7 +25,6 @@ use OCP\HintException; use OCP\IAppConfig; use OCP\IAvatarManager; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Image; use OCP\IUserManager; use OCP\Notification\IManager as INotificationManager; @@ -110,7 +109,7 @@ class AccessTest extends TestCase { $this->createMock(INotificationManager::class), $this->shareManager]) ->getMock(); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); return [$lw, $connector, $um, $helper]; } diff --git a/apps/user_ldap/tests/HelperTest.php b/apps/user_ldap/tests/HelperTest.php index 470b67c5531..adea600d900 100644 --- a/apps/user_ldap/tests/HelperTest.php +++ b/apps/user_ldap/tests/HelperTest.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace OCA\User_LDAP\Tests; use OCA\User_LDAP\Helper; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\IDBConnection; use OCP\Server; use PHPUnit\Framework\MockObject\MockObject; @@ -17,45 +17,53 @@ use PHPUnit\Framework\MockObject\MockObject; * @group DB */ class HelperTest extends \Test\TestCase { - private IConfig&MockObject $config; + private IAppConfig&MockObject $appConfig; private Helper $helper; protected function setUp(): void { parent::setUp(); - $this->config = $this->createMock(IConfig::class); - $this->helper = new Helper($this->config, Server::get(IDBConnection::class)); + $this->appConfig = $this->createMock(IAppConfig::class); + $this->helper = new Helper( + $this->appConfig, + Server::get(IDBConnection::class) + ); } public function testGetServerConfigurationPrefixes(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_configuration_active', 's1ldap_configuration_active', ]); + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + $result = $this->helper->getServerConfigurationPrefixes(false); $this->assertEquals(['', 's1'], $result); } public function testGetServerConfigurationPrefixesActive(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_configuration_active', 's1ldap_configuration_active', ]); - $this->config->method('getAppValue') + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + + $this->appConfig->method('getValueString') ->willReturnCallback(function ($app, $key, $default) { - if ($app !== 'user_ldap') { - $this->fail('wrong app'); - } if ($key === 's1ldap_configuration_active') { return '1'; } @@ -67,21 +75,58 @@ class HelperTest extends \Test\TestCase { $this->assertEquals(['s1'], $result); } - public function testGetServerConfigurationHost(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + public function testGetServerConfigurationHostFromAppKeys(): void { + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_host', 's1ldap_host', 's02ldap_host', + 'ldap_configuration_active', + 's1ldap_configuration_active', + 's02ldap_configuration_active', ]); - $this->config->method('getAppValue') + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + + $this->appConfig->method('getValueString') ->willReturnCallback(function ($app, $key, $default) { - if ($app !== 'user_ldap') { - $this->fail('wrong app'); + if ($key === 'ldap_host') { + return 'example.com'; } + if ($key === 's1ldap_host') { + return 'foo.bar.com'; + } + return $default; + }); + + $result = $this->helper->getServerConfigurationHosts(); + + $this->assertEquals([ + '' => 'example.com', + 's1' => 'foo.bar.com', + 's02' => '', + ], $result); + } + + public function testGetServerConfigurationHost(): void { + $this->appConfig + ->expects(self::never()) + ->method('getKeys'); + + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturn([ + '', + 's1', + 's02', + ]); + + $this->appConfig->method('getValueString') + ->willReturnCallback(function ($app, $key, $default) { if ($key === 'ldap_host') { return 'example.com'; } diff --git a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php index be8d7702cd1..00f8be18586 100644 --- a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php +++ b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php @@ -16,7 +16,6 @@ use OCA\User_LDAP\User\Manager; use OCA\User_LDAP\UserPluginManager; use OCP\IAvatarManager; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Image; use OCP\IUserManager; use OCP\Server; @@ -125,7 +124,7 @@ abstract class AbstractIntegrationTest { * initializes the test Helper */ protected function initHelper() { - $this->helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $this->helper = Server::get(Helper::class); } /** diff --git a/apps/user_ldap/tests/LDAPProviderTest.php b/apps/user_ldap/tests/LDAPProviderTest.php index a4da4a91948..57323e374aa 100644 --- a/apps/user_ldap/tests/LDAPProviderTest.php +++ b/apps/user_ldap/tests/LDAPProviderTest.php @@ -21,7 +21,6 @@ use OCA\User_LDAP\User_LDAP; use OCP\EventDispatcher\IEventDispatcher; use OCP\ICacheFactory; use OCP\IConfig; -use OCP\IDBConnection; use OCP\IServerContainer; use OCP\Server; use Psr\Log\LoggerInterface; @@ -199,7 +198,7 @@ class LDAPProviderTest extends \Test\TestCase { $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals( @@ -212,7 +211,7 @@ class LDAPProviderTest extends \Test\TestCase { $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals( diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index 5e1cdb28dd3..4c189cc41a3 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -2597,14 +2597,6 @@ <code><![CDATA[$gid]]></code> </ParamNameMismatch> </file> - <file src="apps/user_ldap/lib/Helper.php"> - <DeprecatedMethod> - <code><![CDATA[execute]]></code> - <code><![CDATA[getAppKeys]]></code> - <code><![CDATA[getAppValue]]></code> - <code><![CDATA[getAppValue]]></code> - </DeprecatedMethod> - </file> <file src="apps/user_ldap/lib/Jobs/CleanUp.php"> <DeprecatedMethod> <code><![CDATA[getAppValue]]></code> diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 92a28bcbc32..6dcb3d53731 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -232,7 +232,7 @@ OC.L10N.register( "Continue with this unsupported browser" : "Continuar con este navegador non compatíbel", "Supported versions" : "Versións compatíbeis", "Search {types} …" : "Buscando {types}…", - "Choose {file}" : "Escoller {file}", + "Choose {file}" : "Escoller {file}", "Choose" : "Escoller", "Copy to {target}" : "Copiar en {target}", "Copy" : "Copiar", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index bd56103b250..a3c2e30ff40 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -230,7 +230,7 @@ "Continue with this unsupported browser" : "Continuar con este navegador non compatíbel", "Supported versions" : "Versións compatíbeis", "Search {types} …" : "Buscando {types}…", - "Choose {file}" : "Escoller {file}", + "Choose {file}" : "Escoller {file}", "Choose" : "Escoller", "Copy to {target}" : "Copiar en {target}", "Copy" : "Copiar", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index b5c4eb91dbf..701a410cef0 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -27,19 +27,20 @@ OC.L10N.register( "Could not complete login" : "Nevarēja pabeigt pieteikšanos", "State token missing" : "Trūkst stāvokļa tekstvienības", "Your login token is invalid or has expired" : "Pieteikšanās pilnvara nav derīga vai ir beigusies", - "This community release of Nextcloud is unsupported and push notifications are limited." : "Šī Nextcloud kopienas versija nav atbalstīta un push paziņojumi ir ierobežoti.", + "Please use original client" : "Lūgums izmantot sākotnējo klientu", + "This community release of Nextcloud is unsupported and push notifications are limited." : "Šis Nextcloud kopienas laidiens nav atbalstīts un pašpiegādes paziņojumi ir ierobežoti.", "Login" : "Pieteikumvārds", - "Unsupported email length (>255)" : "Neatbalstāms e-pasta garums (>255)", + "Unsupported email length (>255)" : "Neatbalstīts e-pasta adreses garums (>255)", "Password reset is disabled" : "Paroles atiestatīšana ir atspējota", "Could not reset password because the token is expired" : "Nevarēja atiestatīt paroli, jo ir beidzies tekstvienības derīgums", "Could not reset password because the token is invalid" : "Nevarēja atiestatīt paroli, jo tekstvienība ir nederīga", "Password is too long. Maximum allowed length is 469 characters." : "Parole ir pārāk gara. Lielākais atļautais garums ir 469 rakstzīmes.", - "%s password reset" : "%s paroles maiņa", + "%s password reset" : "%s paroles atiestatīšana", "Password reset" : "Parole atiestatīta", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Jānospiež zemāk esošā poga, lai atiestatītu savu paroli. Šis e-pasta ziņojums nav jāņem vērā, ja paroles atiestatīšana netika pieprasīta.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Jāklikšķina uz zemāk esošās saites, lai atiestatītu savu paroli. Šis e-pasta ziņojums nav jāņem vērā, ja paroles atiestatīšana netika pieprasīta.", "Reset your password" : "Atiestatīt paroli", - "The given provider is not available" : "Norādītājs pakalpojuma sniedzējs nav pieejams", + "The given provider is not available" : "Norādītais nodrošinātājs nav pieejams", "Task not found" : "Uzdevums nav atrasts", "Internal error" : "Iekšēja kļūda", "Not found" : "Nav atrasts", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index b0e26a06ba7..e49b799e59b 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -25,19 +25,20 @@ "Could not complete login" : "Nevarēja pabeigt pieteikšanos", "State token missing" : "Trūkst stāvokļa tekstvienības", "Your login token is invalid or has expired" : "Pieteikšanās pilnvara nav derīga vai ir beigusies", - "This community release of Nextcloud is unsupported and push notifications are limited." : "Šī Nextcloud kopienas versija nav atbalstīta un push paziņojumi ir ierobežoti.", + "Please use original client" : "Lūgums izmantot sākotnējo klientu", + "This community release of Nextcloud is unsupported and push notifications are limited." : "Šis Nextcloud kopienas laidiens nav atbalstīts un pašpiegādes paziņojumi ir ierobežoti.", "Login" : "Pieteikumvārds", - "Unsupported email length (>255)" : "Neatbalstāms e-pasta garums (>255)", + "Unsupported email length (>255)" : "Neatbalstīts e-pasta adreses garums (>255)", "Password reset is disabled" : "Paroles atiestatīšana ir atspējota", "Could not reset password because the token is expired" : "Nevarēja atiestatīt paroli, jo ir beidzies tekstvienības derīgums", "Could not reset password because the token is invalid" : "Nevarēja atiestatīt paroli, jo tekstvienība ir nederīga", "Password is too long. Maximum allowed length is 469 characters." : "Parole ir pārāk gara. Lielākais atļautais garums ir 469 rakstzīmes.", - "%s password reset" : "%s paroles maiņa", + "%s password reset" : "%s paroles atiestatīšana", "Password reset" : "Parole atiestatīta", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Jānospiež zemāk esošā poga, lai atiestatītu savu paroli. Šis e-pasta ziņojums nav jāņem vērā, ja paroles atiestatīšana netika pieprasīta.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Jāklikšķina uz zemāk esošās saites, lai atiestatītu savu paroli. Šis e-pasta ziņojums nav jāņem vērā, ja paroles atiestatīšana netika pieprasīta.", "Reset your password" : "Atiestatīt paroli", - "The given provider is not available" : "Norādītājs pakalpojuma sniedzējs nav pieejams", + "The given provider is not available" : "Norādītais nodrošinātājs nav pieejams", "Task not found" : "Uzdevums nav atrasts", "Internal error" : "Iekšēja kļūda", "Not found" : "Nav atrasts", diff --git a/cypress/e2e/files_sharing/public-share/sidebar-tab.cy.ts b/cypress/e2e/files_sharing/public-share/sidebar-tab.cy.ts new file mode 100644 index 00000000000..6b026717fd8 --- /dev/null +++ b/cypress/e2e/files_sharing/public-share/sidebar-tab.cy.ts @@ -0,0 +1,45 @@ +/*! + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type { User } from "@nextcloud/cypress" +import { createShare } from "./FilesSharingUtils" +import { createLinkShare, openLinkShareDetails } from "./PublicShareUtils" + +describe('files_sharing: sidebar tab', () => { + let alice: User + + beforeEach(() => { + cy.createRandomUser() + .then((user) => { + alice = user + cy.mkdir(user, '/test') + cy.login(user) + cy.visit('/apps/files') + }) + }) + + /** + * Regression tests of https://github.com/nextcloud/server/issues/53566 + * Where the ' char was shown as ' + */ + it('correctly lists shares by label with special characters', () => { + createLinkShare({ user: alice }, 'test') + openLinkShareDetails(0) + cy.findByRole('textbox', { name: /share label/i }) + .should('be.visible') + .type('Alice\' share') + + cy.intercept('PUT', '**/ocs/v2.php/apps/files_sharing/api/v1/shares/*').as('PUT') + cy.findByRole('button', { name: /update share/i }).click() + cy.wait('@PUT') + + // see the label is shown correctly + cy.findByRole('list', { name: /link shares/i }) + .findAllByRole('listitem') + .should('have.length', 1) + .first() + .should('contain.text', 'Share link (Alice\' share)') + }) +}) diff --git a/dist/7701-7701.js b/dist/7701-7701.js deleted file mode 100644 index 2ae4ad39b47..00000000000 --- a/dist/7701-7701.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[5810,7701],{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},10288:(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-4826394a]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4826394a]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4826394a]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4826394a]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4826394a]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4826394a]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4826394a]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4826394a]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4826394a]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4826394a],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4826394a]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4826394a] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4826394a]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4826394a]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4826394a]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4826394a]{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-4826394a]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]: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},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,KT:()=>h,My:()=>g,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,di:()=>c,lJ:()=>n.d,nF:()=>l,pt:()=>n.F,ur:()=>A,v7:()=>p});var n=i(68251),r=i(87485),s=(i(43627),i(53334)),a=i(380),o=i(65606),l=(t=>(t.ReservedName="reserved name",t.Character="character",t.Extension="extension",t))(l||{});class c extends Error{constructor(t){super(`Invalid ${t.reason} '${t.segment}' in filename '${t.filename}'`,{cause:t})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function h(t){const e=(0,r.F)().files,i=e.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const e of i)if(t.includes(e))throw new c({segment:e,reason:"character",filename:t});if(t=t.toLocaleLowerCase(),(e.forbidden_filenames??[".htaccess"]).includes(t))throw new c({filename:t,segment:t,reason:"reserved name"});const n=t.indexOf(".",1),s=t.substring(0,-1===n?void 0:n);if((e.forbidden_filename_basenames??[]).includes(s))throw new c({filename:t,segment:s,reason:"reserved name"});const a=e.forbidden_filename_extensions??[".part",".filepart"];for(const e of a)if(t.length>e.length&&t.endsWith(e))throw new c({segment:e,reason:"extension",filename:t})}const u=["B","KB","MB","GB","TB","PB"],d=["B","KiB","MiB","GiB","TiB","PiB"];function p(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let r=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;r=Math.min((i?d.length:u.length)-1,r);const a=i?d[r]:u[r];let o=(t/Math.pow(n?1e3:1024,r)).toFixed(1);return!0===e&&0===r?("0.0"!==o?"< 1 ":"0 ")+(i?d[1]:u[1]):(o=r<2?parseFloat(o).toFixed(0):parseFloat(o).toLocaleString((0,s.lO)()),o+" "+a)}function f(t){return t instanceof Date?t.toISOString():String(t)}function g(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),r=Intl.Collator([(0,s.Z0)(),(0,s.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[s,a]of e.entries()){const e=r.compare(f(a(t)),f(a(i)));if(0!==e)return e*n[s]}return 0}))}function A(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return g(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 m,v,y={},C={};function w(){return m||(m=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}(C)),C}function b(){if(v)return y;v=1;const t=w(),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}y.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.",f(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",f(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",f(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",f(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",f(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 f(t){return t.startIndex+t[1].length}return y}var _,E,x,S,I,k,T,N,D,P,R,B={};function L(){return D?N:(D=1,N=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 O,M,U,$,F,V,j,z,q,H,G,W,Y,X={};function Q(){if(O)return X;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 O=1,X.prettify=function(e,i){return t(e,i)},X}function Z(){if(U)return M;U=1;const{buildOptions:t}=function(){if(_)return B;_=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 B.buildOptions=function(e){return Object.assign({},t,e)},B.defaultOptions=t,B}(),e=function(){if(R)return P;R=1;const t=w(),e=x?E:(x=1,E=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(I)return S;I=1;const t=w();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 S=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(T)return k;T=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 k=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=L();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?v(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:v(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 m(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 v(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 P=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=m,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=Q(),n=b();return M=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 K(){if(F)return $;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 F=1,$=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function J(){if(G)return H;G=1;const t="object"==typeof o&&o.env&&o.env.NODE_DEBUG&&/\bsemver\b/i.test(o.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return H=t}function tt(){if(Y)return W;Y=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return W={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(q)return z;q=1;const t=b(),e=Z(),i=function(){if(j)return V;j=1;const t=K(),e=L(),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},V=n}();z={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var et,it,nt,rt,st,at,ot,lt,ct,ht,ut,dt,pt,ft={exports:{}};function gt(){if(ot)return at;ot=1;const t=J(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=tt(),{safeRe:n,t:r}=(et||(et=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=tt(),s=J(),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*$")}(ft,ft.exports)),ft.exports),s=function(){if(nt)return it;nt=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return it=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(st)return rt;st=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 rt={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 at=o}!function(){if(ut)return ht;ut=1;const t=function(){if(ct)return lt;ct=1;const t=gt();return lt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();ht=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(pt)return dt;pt=1;const t=gt();dt=(e,i)=>new t(e,i).major}(),a.m},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},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},63316:(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-46cd2ca2]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-46cd2ca2]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-46cd2ca2]{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-46cd2ca2]{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},66267:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Bi});var r=n(21777),s=n(87485),a=n(35810),o=n(32981),l=n(63814),c=n(85072),h=n.n(c),u=n(97825),d=n.n(u),p=n(77659),f=n.n(p),g=n(55056),A=n.n(g),m=n(10540),v=n.n(m),y=n(41113),C=n.n(y),w=n(97380),b={};b.styleTagTransform=C(),b.setAttributes=A(),b.insert=f().bind(null,"head"),b.domAPI=d(),b.insertStyleElement=v(),h()(w.A,b),w.A&&w.A.locals&&w.A.locals;var _=n(53334),E=n(41944),x=n(67607);const S=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},I="object"==typeof global&&global&&global.Object===Object&&global;var k="object"==typeof self&&self&&self.Object===Object&&self;const T=I||k||Function("return this")(),N=function(){return T.Date.now()};var D=/\s/;var P=/^\s+/;const R=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&D.test(t.charAt(e)););return e}(t)+1).replace(P,""):t},B=T.Symbol;var L=Object.prototype,O=L.hasOwnProperty,M=L.toString,U=B?B.toStringTag:void 0;var $=Object.prototype.toString;var F=B?B.toStringTag:void 0;const V=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":F&&F in Object(t)?function(t){var e=O.call(t,U),i=t[U];try{t[U]=void 0;var n=!0}catch(t){}var r=M.call(t);return n&&(e?t[U]=i:delete t[U]),r}(t):function(t){return $.call(t)}(t)};var j=/^[-+]0x[0-9a-f]+$/i,z=/^0b[01]+$/i,q=/^0o[0-7]+$/i,H=parseInt;const G=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]"==V(t)}(t))return NaN;if(S(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=S(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=R(t);var i=z.test(t);return i||q.test(t)?H(t.slice(2),i?2:8):j.test(t)?NaN:+t};var W=Math.max,Y=Math.min;var X=n(24764),Q=n(57505),Z=n(85471),K=n(65043);const J=new class{constructor(){this.http=K.Ay}listCollection(t){return this.http.get((0,l.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,l.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,l.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,l.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,l.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,l.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,l.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},tt=(0,Z.Kh)({collections:[]}),et={addCollections(t){(0,Z.hZ)(tt,"collections",t)},addCollection(t){tt.collections.push(t)},removeCollection(t){(0,Z.hZ)(tt,"collections",tt.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=tt.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Z.hZ)(tt.collections,e,t):tt.collections.push(t)}},it={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>J.getCollectionsByResource(t,e).then((t=>(et.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>J.createCollection(t,e,r).then((t=>{et.addCollection(t),it.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>J.renameCollection(t,e).then((t=>(et.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>J.addResource(t,e,i).then((t=>(et.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>J.removeResource(t,e,i).then((t=>{t.resources.length>0?et.updateCollection(t):et.removeCollection(t)})),search:t=>J.search(t)};function nt(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 rt=nt({name:"CollectionListItem",components:{NcAvatar:E.A,NcActions:X.A,NcActionButton:Q.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:_.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){it.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?it.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,_.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Z.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,st=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=N();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=N(),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=G(e)||0,S(i)&&(h=!!i.leading,s=(u="maxWait"in i)?W(G(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(N())},m}((function(t,e){""!==t&&(e(!0),it.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),at={name:"CollectionList",components:{CollectionListItem:rt,NcAvatar:E.A,NcSelect:x.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:tt}),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,_.t)("core","Type to search for existing projects"):(0,_.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&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:_.t,select(t,e){0===t.method&&t.action().then((e=>{it.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,_.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&it.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,_.t)("core","Failed to add the item to the project"),t)}))},search(t,e){st.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)}}},ot=nt(at,(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 lt=n(77905),ct=n(83241),ht=n(48718),ut=n(51651),dt=n(97012);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,s.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,o.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:X.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=C(),bt.setAttributes=A(),bt.insert=f().bind(null,"head"),bt.domAPI=d(),bt.insertStyleElement=v(),h()(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:Q.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,l.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=C(),It.setAttributes=A(),It.insert=f().bind(null,"head"),It.domAPI=d(),It.insertStyleElement=v(),h()(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,l.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 K.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 K.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 K.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:x.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,s.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];const r=[lt.I.Remote,lt.I.RemoteGroup];this.isExternal&&!this.config.showFederatedSharesAsInternal?n.push(...r):(n=n.concat([lt.I.User,lt.I.Group,lt.I.Team,lt.I.Room,lt.I.Guest,lt.I.Deck,lt.I.ScienceMesh]),this.config.showFederatedSharesAsInternal&&n.push(...r)),!0===(0,s.F)().files_sharing.public.enabled&&this.isExternal&&n.push(lt.I.Email);let a=null;try{a=await K.Ay.get((0,l.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 o=a.data.ocs.data,c=a.data.ocs.data.exact;o.exact=[];const h=Object.values(c).reduce(((t,e)=>t.concat(e)),[]),u=Object.values(o).reduce(((t,e)=>t.concat(e)),[]),d=this.filterOutExistingShares(h).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),p=this.filterOutExistingShares(u).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),f=[];o.lookupEnabled&&!i&&f.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const g=this.externalResults.filter((t=>!t.condition||t.condition(this))),A=d.concat(p).concat(g).concat(f),m=A.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=A.map((t=>m[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 K.Ay.get((0,l.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===lt.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===lt.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 lt.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case lt.I.RemoteGroup:case lt.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case lt.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case lt.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case lt.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case lt.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case lt.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===lt.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==lt.I.Remote&&e.value.shareType!==lt.I.RemoteGroup||!e.value.server?e.value.shareType===lt.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!==lt.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ut=n(6835),$t={};$t.styleTagTransform=C(),$t.setAttributes=A(),$t.insert=f().bind(null,"head"),$t.domAPI=d(),$t.insertStyleElement=v(),h()(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(72298),zt=n(30594),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 K.Ay.get(Ht.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,mt.Te)((0,_.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,_.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 Wt=n(77815);const Yt=(0,Wt.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:lt.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[lt.I.Link,lt.I.Email].includes(t)},isRemoteShare(){return this.share.type===lt.I.RemoteGroup||this.share.type===lt.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,Wt.aN)(),i=await Yt.stat(`${(0,Wt.ei)()}${t}`,{details:!0,data:e});return(0,Wt.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:Q.A,NcActionLink:jt.A,NcActionText:zt.A,NcAvatar:E.A,SharingEntrySimple:Et},mixins:[Xt],props:{share:{type:At,required:!0}},computed:{viaFileTargetUrl(){return(0,l.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,Vt.P8)(this.share.viaPath)}}};var Zt=n(59879),Kt={};Kt.styleTagTransform=C(),Kt.setAttributes=A(),Kt.insert=f().bind(null,"head"),Kt.domAPI=d(),Kt.insertStyleElement=v(),h()(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:Q.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,l.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await K.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=C(),ie.setAttributes=A(),ie.insert=f().bind(null,"head"),ie.domAPI=d(),ie.insertStyleElement=v(),h()(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:X.A,NcActionButton:Q.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[lt.I.Link,lt.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=C(),Be.setAttributes=A(),Be.insert=f().bind(null,"head"),Be.domAPI=d(),Be.insertStyleElement=v(),h()(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:dt.A,NcPopover:ht.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(63316),Ve={};Ve.styleTagTransform=C(),Ve.setAttributes=A(),Ve.insert=f().bind(null,"head"),Ve.domAPI=d(),Ve.insertStyleElement=v(),h()(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: {date}",{date: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,"46cd2ca2",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:X.A,NcActionButton:Q.A,NcActionCheckbox:ae.N,NcActionInput:oe.A,NcActionLink:jt.A,NcActionText:zt.A,NcActionSeparator:le.A,NcAvatar:E.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,ut.A)(this.share.passwordExpirationTime);return!(t.diff((0,ut.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===lt.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,l.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,l.$_)()})},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(lt.I.Link)||t.shareType.includes(lt.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:lt.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:lt.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 We=n(96819),Ye={};Ye.styleTagTransform=C(),Ye.setAttributes=A(),Ye.insert=f().bind(null,"head"),Ye.domAPI=d(),Ye.insertStyleElement=v(),h()(We.A,Ye),We.A&&We.A.locals&&We.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,s.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===lt.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:_.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:dt.A,NcAvatar:E.A,DotsHorizontalIcon:Ze.A,NcSelect:x.A,ShareExpiryTime:je,SharingEntryQuickShareSelect:Le},mixins:[Xt,Ot],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===lt.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===lt.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===lt.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===lt.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===lt.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===lt.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===lt.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===lt.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Je=n(70162),ti={};ti.styleTagTransform=C(),ti.setAttributes=A(),ti.insert=f().bind(null,"head"),ti.domAPI=d(),ti.insertStyleElement=v(),h()(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:_.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===lt.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(88984),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:E.A,NcButton:dt.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 lt.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case lt.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case lt.I.Link:return t("files_sharing","Share link");case lt.I.Group:return t("files_sharing","Share with group");case lt.I.Room:return t("files_sharing","Share in conversation");case lt.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 lt.I.RemoteGroup:return t("files_sharing","Share with remote group");case lt.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===lt.I.User},isGroupShare(){return this.share.type===lt.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==lt.I.Link&&this.share.type!==lt.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!==lt.I.Link&&this.share.type!==lt.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===lt.I.Link||this.share.type===lt.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ut.A)(this.share.passwordExpirationTime);return!(t.diff((0,ut.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===lt.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,_.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(lt.I.Link)||t.shareType.includes(lt.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 K.Ay.get((0,l.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.isValidShareAttribute(this.share.note)&&(this.writeNoteToRecipientIsChecked=!0,this.advancedSectionAccordionExpanded=!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 lt.I.Link:return pi.A;case lt.I.Guest:return vi;case lt.I.RemoteGroup:case lt.I.Group:return fi.A;case lt.I.Email:return di;case lt.I.Team:return hi;case lt.I.Room:case lt.I.Deck:case lt.I.ScienceMesh:return Ai;default:return null}}}};var Ii=n(10288),ki={};ki.styleTagTransform=C(),ki.setAttributes=A(),ki.insert=f().bind(null,"head"),ki.domAPI=d(),ki.insertStyleElement=v(),h()(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,"4826394a",null).exports,Ni={name:"SharingTab",components:{CollectionList:ot,InfoIcon:ct.A,NcAvatar:E.A,NcButton:dt.A,NcPopover:ht.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,o.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 null!==this.sharedWithMe&&void 0!==this.sharedWithMe},isLinkSharingAllowed(){if(!(0,r.HW)())return!1;const t=(0,s.F)();return!0===(t.files_sharing?.public||{}).enabled},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.isLinkSharingAllowed?this.config.showFederatedSharesAsInternal?t("files_sharing","Email"):t("files_sharing","Email, federated cloud ID"):t("files_sharing","Federated cloud ID")}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,l.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=K.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=K.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,ut.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ut.A)(1e3*i).fromNow()})),(0,ut.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,a.My)(e.ocs.data.map((t=>new At(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);for(const e of t)[lt.I.Link,lt.I.Email].includes(e.type)?this.linkShares.push(e):[lt.I.Remote,lt.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===lt.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===lt.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===lt.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,ut.A)(e.expireDate).unix()>(0,ut.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===lt.I.Email?this.linkShares.unshift(t):[lt.I.Remote,lt.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===lt.I.Email||t.type===lt.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===lt.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(92158),Ri={};Ri.styleTagTransform=C(),Ri.setAttributes=A(),Ri.insert=f().bind(null,"head"),Ri.domAPI=d(),Ri.insertStyleElement=v(),h()(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.isLinkSharingAllowed?e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}}):t._e()],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,"592538f1",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},92158:(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-592538f1]{margin:1rem auto}.sharingTab[data-v-592538f1]{position:relative;height:100%}.sharingTab__content[data-v-592538f1]{padding:0 6px}.sharingTab__content section[data-v-592538f1]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-592538f1]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-592538f1]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-592538f1]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-592538f1]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-592538f1]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-592538f1]{margin:44px 0}.hint-body[data-v-592538f1]{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},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=7701-7701.js.map?v=f66f78d001307622cd06
\ No newline at end of file diff --git a/dist/7701-7701.js.map b/dist/7701-7701.js.map deleted file mode 100644 index 71a7c9efec6..00000000000 --- a/dist/7701-7701.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"7701-7701.js?v=f66f78d001307622cd06","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/SharingDetailsTab.vue?vue&type=style&index=0&id=4826394a&prod&lang=scss&scoped=true","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/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/components/SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=style&index=0&id=46cd2ca2&prod&scoped=true&lang=scss","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?ac36","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?b625","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?f56b","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/views/SharingTab.vue?vue&type=style&index=0&id=592538f1&prod&scoped=true&lang=scss","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, `.sharingTabDetailsView[data-v-4826394a]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4826394a]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4826394a]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4826394a]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4826394a]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4826394a]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4826394a]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4826394a]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4826394a]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4826394a],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4826394a]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4826394a] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4826394a]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4826394a]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4826394a]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4826394a]{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-4826394a]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]: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","/*!\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, `.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, `.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","// 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-46cd2ca2]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-46cd2ca2]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-46cd2ca2]{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-46cd2ca2]{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","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 && _vm.isLinkSharingAllowed)?_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: {date}', { date: 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: {date}', { date: 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=46cd2ca2&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=46cd2ca2&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=46cd2ca2&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=46cd2ca2&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 \"46cd2ca2\",\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.isValidShareAttribute(this.share.note)) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t\tthis.advancedSectionAccordionExpanded = 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=4826394a&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=4826394a&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=4826394a&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=4826394a&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 \"4826394a\",\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 && isLinkSharingAllowed\"\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 { getCapabilities } from '@nextcloud/capabilities'\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 this.sharedWithMe !== null\n\t\t\t\t&& this.sharedWithMe !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is link sharing allowed for the current user?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisLinkSharingAllowed() {\n\t\t\tconst currentUser = getCurrentUser()\n\t\t\tif (!currentUser) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tconst publicSharing = capabilities.files_sharing?.public || {}\n\t\t\treturn publicSharing.enabled === true\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\tif (!this.isLinkSharingAllowed) {\n\t\t\t\treturn t('files_sharing', 'Federated cloud ID')\n\t\t\t}\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=592538f1&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=592538f1&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=592538f1&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=592538f1&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 \"592538f1\",\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, `.emptyContentWithSections[data-v-592538f1]{margin:1rem auto}.sharingTab[data-v-592538f1]{position:relative;height:100%}.sharingTab__content[data-v-592538f1]{padding:0 6px}.sharingTab__content section[data-v-592538f1]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-592538f1]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-592538f1]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-592538f1]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-592538f1]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-592538f1]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-592538f1]{margin:44px 0}.hint-body[data-v-592538f1]{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, `.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","InvalidFilenameErrorReason","InvalidFilenameErrorReason2","InvalidFilenameError","super","reason","segment","filename","cause","validateFilename","capabilities","files","forbiddenCharacters","forbidden_filename_characters","window","_oc_config","forbidden_filenames_characters","character","toLocaleLowerCase","forbidden_filenames","endOfBasename","basename2","substring","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","extension","endsWith","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","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","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","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","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","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","isLinkSharingAllowed","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/7701-7701.js.map.license b/dist/7701-7701.js.map.license deleted file mode 120000 index deccf0c582b..00000000000 --- a/dist/7701-7701.js.map.license +++ /dev/null @@ -1 +0,0 @@ -7701-7701.js.license
\ No newline at end of file diff --git a/dist/8708-8708.js b/dist/8708-8708.js new file mode 100644 index 00000000000..435a1068f2c --- /dev/null +++ b/dist/8708-8708.js @@ -0,0 +1,2 @@ +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[5810,8708],{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},10288:(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-4826394a]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4826394a]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4826394a]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4826394a]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4826394a]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4826394a]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4826394a]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4826394a]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4826394a]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4826394a],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4826394a]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4826394a] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4826394a]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4826394a]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4826394a]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4826394a]{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-4826394a]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]: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},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()}}}()},18634:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Ri});var r=n(21777),s=n(87485),a=n(35810),o=n(32981),l=n(63814),c=n(85072),h=n.n(c),u=n(97825),d=n.n(u),p=n(77659),f=n.n(p),g=n(55056),A=n.n(g),m=n(10540),v=n.n(m),y=n(41113),C=n.n(y),w=n(97380),b={};b.styleTagTransform=C(),b.setAttributes=A(),b.insert=f().bind(null,"head"),b.domAPI=d(),b.insertStyleElement=v(),h()(w.A,b),w.A&&w.A.locals&&w.A.locals;var _=n(53334),E=n(41944),x=n(67607);const S=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},I="object"==typeof global&&global&&global.Object===Object&&global;var k="object"==typeof self&&self&&self.Object===Object&&self;const T=I||k||Function("return this")(),N=function(){return T.Date.now()};var D=/\s/;var P=/^\s+/;const R=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&D.test(t.charAt(e)););return e}(t)+1).replace(P,""):t},B=T.Symbol;var L=Object.prototype,O=L.hasOwnProperty,M=L.toString,U=B?B.toStringTag:void 0;var $=Object.prototype.toString;var F=B?B.toStringTag:void 0;const V=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":F&&F in Object(t)?function(t){var e=O.call(t,U),i=t[U];try{t[U]=void 0;var n=!0}catch(t){}var r=M.call(t);return n&&(e?t[U]=i:delete t[U]),r}(t):function(t){return $.call(t)}(t)};var j=/^[-+]0x[0-9a-f]+$/i,z=/^0b[01]+$/i,q=/^0o[0-7]+$/i,H=parseInt;const G=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]"==V(t)}(t))return NaN;if(S(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=S(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=R(t);var i=z.test(t);return i||q.test(t)?H(t.slice(2),i?2:8):j.test(t)?NaN:+t};var W=Math.max,Y=Math.min;var X=n(24764),Q=n(57505),Z=n(85471),K=n(65043);const J=new class{constructor(){this.http=K.Ay}listCollection(t){return this.http.get((0,l.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,l.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,l.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,l.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,l.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,l.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,l.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},tt=(0,Z.Kh)({collections:[]}),et={addCollections(t){(0,Z.hZ)(tt,"collections",t)},addCollection(t){tt.collections.push(t)},removeCollection(t){(0,Z.hZ)(tt,"collections",tt.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=tt.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Z.hZ)(tt.collections,e,t):tt.collections.push(t)}},it={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>J.getCollectionsByResource(t,e).then((t=>(et.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>J.createCollection(t,e,r).then((t=>{et.addCollection(t),it.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>J.renameCollection(t,e).then((t=>(et.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>J.addResource(t,e,i).then((t=>(et.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>J.removeResource(t,e,i).then((t=>{t.resources.length>0?et.updateCollection(t):et.removeCollection(t)})),search:t=>J.search(t)};function nt(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 rt=nt({name:"CollectionListItem",components:{NcAvatar:E.A,NcActions:X.A,NcActionButton:Q.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:_.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){it.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?it.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,_.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Z.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,st=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=N();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=N(),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=G(e)||0,S(i)&&(h=!!i.leading,s=(u="maxWait"in i)?W(G(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(N())},m}((function(t,e){""!==t&&(e(!0),it.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),at={name:"CollectionList",components:{CollectionListItem:rt,NcAvatar:E.A,NcSelect:x.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:tt}),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,_.t)("core","Type to search for existing projects"):(0,_.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&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){it.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:_.t,select(t,e){0===t.method&&t.action().then((e=>{it.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,_.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&it.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,_.t)("core","Failed to add the item to the project"),t)}))},search(t,e){st.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)}}},ot=nt(at,(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 lt=n(77905),ct=n(83241),ht=n(48718),ut=n(51651),dt=n(97012);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,s.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,o.C)("files_sharing","showFederatedSharesAsInternal",!1)}}const ft=(0,n(35947).YK)().setApp("files_sharing").detectUser().build();class gt{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 ft.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 At=n(85168),mt=n(54373),vt=n(31773);const yt={name:"SharingEntrySimple",components:{NcActions:X.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 Ct=n(43570),wt={};wt.styleTagTransform=C(),wt.setAttributes=A(),wt.insert=f().bind(null,"head"),wt.domAPI=d(),wt.insertStyleElement=v(),h()(Ct.A,wt),Ct.A&&Ct.A.locals&&Ct.A.locals;var bt=n(14486);const _t=(0,bt.A)(yt,(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,Et={name:"SharingEntryInternal",components:{NcActionButton:Q.A,SharingEntrySimple:_t,CheckIcon:mt.A,ClipboardIcon:vt.A},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return window.location.protocol+"//"+window.location.host+(0,l.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,At.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 xt=n(38779),St={};St.styleTagTransform=C(),St.setAttributes=A(),St.insert=f().bind(null,"head"),St.domAPI=d(),St.insertStyleElement=v(),h()(xt.A,St),xt.A&&xt.A.locals&&xt.A.locals;const It=(0,bt.A)(Et,(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 kt=n(17334),Tt=n.n(kt),Nt=(n(48318),n(61338));const Dt=(0,l.KT)("apps/files_sharing/api/v1/shares"),Pt={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 K.Ay.post(Dt,{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 gt(t.data.ocs.data);return(0,Nt.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,At.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 K.Ay.delete(Dt+`/${e}`);if(!t?.data?.ocs)throw t;return(0,Nt.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 K.Ay.put(Dt+`/${e}`,i);if((0,Nt.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)}}}},Rt={NONE:0,READ:1,UPDATE:2,CREATE:4,DELETE:8,SHARE:16},Bt={READ_ONLY:Rt.READ,UPLOAD_AND_UPDATE:Rt.READ|Rt.UPDATE|Rt.CREATE|Rt.DELETE,FILE_DROP:Rt.CREATE,ALL:Rt.UPDATE|Rt.CREATE|Rt.READ|Rt.DELETE|Rt.SHARE,ALL_FILE:Rt.UPDATE|Rt.READ|Rt.SHARE};const Lt={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&~Rt.CREATE&~Rt.DELETE;t!==i&&(ft.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 gt(e)}}},Ot={name:"SharingInput",components:{NcSelect:x.A},mixins:[Pt,Lt],props:{shares:{type:Array,default:()=>[],required:!0},linkShares:{type:Array,default:()=>[],required:!0},fileInfo:{type:Object,default:()=>{},required:!0},reshare:{type:gt,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,s.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];const r=[lt.I.Remote,lt.I.RemoteGroup];this.isExternal&&!this.config.showFederatedSharesAsInternal?n.push(...r):(n=n.concat([lt.I.User,lt.I.Group,lt.I.Team,lt.I.Room,lt.I.Guest,lt.I.Deck,lt.I.ScienceMesh]),this.config.showFederatedSharesAsInternal&&n.push(...r)),!0===(0,s.F)().files_sharing.public.enabled&&this.isExternal&&n.push(lt.I.Email);let a=null;try{a=await K.Ay.get((0,l.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 o=a.data.ocs.data,c=a.data.ocs.data.exact;o.exact=[];const h=Object.values(c).reduce(((t,e)=>t.concat(e)),[]),u=Object.values(o).reduce(((t,e)=>t.concat(e)),[]),d=this.filterOutExistingShares(h).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),p=this.filterOutExistingShares(u).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),f=[];o.lookupEnabled&&!i&&f.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const g=this.externalResults.filter((t=>!t.condition||t.condition(this))),A=d.concat(p).concat(g).concat(f),m=A.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=A.map((t=>m[t.displayName]>1&&!t.desc?{...t,desc:t.shareWithDisplayNameUnique}:t)),this.loading=!1,console.info("suggestions",this.suggestions)},debounceGetSuggestions:Tt()((function(){this.getSuggestions(...arguments)}),300),async getRecommendations(){this.loading=!0;let t=null;try{t=await K.Ay.get((0,l.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===lt.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===lt.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 lt.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case lt.I.RemoteGroup:case lt.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case lt.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case lt.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case lt.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case lt.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case lt.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===lt.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==lt.I.Remote&&e.value.shareType!==lt.I.RemoteGroup||!e.value.server?e.value.shareType===lt.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!==lt.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Mt=n(6835),Ut={};Ut.styleTagTransform=C(),Ut.setAttributes=A(),Ut.insert=f().bind(null,"head"),Ut.domAPI=d(),Ut.insertStyleElement=v(),h()(Mt.A,Ut),Mt.A&&Mt.A.locals&&Mt.A.locals;const $t=(0,bt.A)(Ot,(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 Ft=n(71225),Vt=n(72298),jt=n(30594),zt=n(49264);const qt=new pt;async function Ht(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(qt.passwordPolicy.api&&qt.passwordPolicy.api.generate)try{const e=await K.Ay.get(qt.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,At.Te)((0,_.Tl)("files_sharing","Password created successfully")),e.data.ocs.data.password}catch(e){console.info("Error generating password from password_policy",e),t&&(0,At.Qg)((0,_.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 Gt=n(77815);const Wt=(0,Gt.KU)(),Yt={mixins:[Pt],props:{fileInfo:{type:Object,default:()=>{},required:!0},share:{type:gt,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new pt,node:null,ShareType:lt.I,errors:{},loading:!1,saving:!1,open:!1,updateQueue:new zt.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[lt.I.Link,lt.I.Email].includes(t)},isRemoteShare(){return this.share.type===lt.I.RemoteGroup||this.share.type===lt.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![Bt.ALL,Bt.READ_ONLY,Bt.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 Ht(!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,Gt.aN)(),i=await Wt.stat(`${(0,Gt.ei)()}${t}`,{details:!0,data:e});return(0,Gt.pO)(i.data)})(t.path),ft.info("Fetched node:",{node:this.node})}catch(t){ft.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,At.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,Nt.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,At.Te)(this.updateSuccessMessage(i))}catch(e){ft.error("Could not update share",{error:e,share:this.share,propertyNames:i});const{message:n}=e;n&&""!==n?(this.onSyncError(i[0],n),(0,At.Qg)(n)):(0,At.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:Tt()((function(t){this.queueUpdate(t)}),500)}},Xt={name:"SharingEntryInherited",components:{NcActionButton:Q.A,NcActionLink:Vt.A,NcActionText:jt.A,NcAvatar:E.A,SharingEntrySimple:_t},mixins:[Yt],props:{share:{type:gt,required:!0}},computed:{viaFileTargetUrl(){return(0,l.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,Ft.P8)(this.share.viaPath)}}};var Qt=n(59879),Zt={};Zt.styleTagTransform=C(),Zt.setAttributes=A(),Zt.insert=f().bind(null,"head"),Zt.domAPI=d(),Zt.insertStyleElement=v(),h()(Qt.A,Zt),Qt.A&&Qt.A.locals&&Qt.A.locals;const Kt=(0,bt.A)(Xt,(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,Jt={name:"SharingInherited",components:{NcActionButton:Q.A,SharingEntryInherited:Kt,SharingEntrySimple:_t},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,l.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await K.Ay.get(t);this.shares=e.data.ocs.data.map((t=>new gt(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 te=n(56467),ee={};ee.styleTagTransform=C(),ee.setAttributes=A(),ee.insert=f().bind(null,"head"),ee.domAPI=d(),ee.insertStyleElement=v(),h()(te.A,ee),te.A&&te.A.locals&&te.A.locals;const ie=(0,bt.A)(Jt,(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 ne=n(17816),re=n.n(ne),se=n(97691),ae=n(44131),oe=n(15502),le=n(94219);const ce={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},he=(0,bt.A)(ce,(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,ue={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},de=(0,bt.A)(ue,(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,pe={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fe=(0,bt.A)(pe,(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,ge={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=(0,bt.A)(ge,(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,me={name:"LockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ve=(0,bt.A)(me,(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,ye={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ce=(0,bt.A)(ye,(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 we=n(66001),be=n(96078);const _e={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ee=(0,bt.A)(_e,(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,xe={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Se=(0,bt.A)(xe,(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 Ie=n(2413);const ke={name:"FileUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Te=(0,bt.A)(ke,(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,Ne={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:Ee,NcActions:X.A,NcActionButton:Q.A},mixins:[Yt,Lt],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&~Rt.SHARE)===Bt.READ_ONLY?this.canViewText:this.share.permissions===Bt.ALL||this.share.permissions===Bt.ALL_FILE?this.canEditText:(this.share.permissions&~Rt.SHARE)===Bt.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const t=[{label:this.canViewText,icon:Se},{label:this.canEditText,icon:Ie.A}];return this.supportsFileDrop&&t.push({label:this.fileDropText,icon:Te}),t.push({label:this.customPermissionsText,icon:he}),t},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const t=this.share.type??this.share.shareType;return[lt.I.Link,lt.I.Email].includes(t)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?Bt.ALL:Bt.ALL_FILE;case this.fileDropText:return Bt.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return Bt.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,Nt.B1)("update:share",(t=>{t.id===this.share.id&&(this.share.permissions=t.permissions,this.selectedOption=this.preSelectedOption)}))},unmounted(){(0,Nt.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())}}},De=Ne;var Pe=n(88522),Re={};Re.styleTagTransform=C(),Re.setAttributes=A(),Re.insert=f().bind(null,"head"),Re.domAPI=d(),Re.insertStyleElement=v(),h()(Pe.A,Re),Pe.A&&Pe.A.locals&&Pe.A.locals;const Be=(0,bt.A)(De,(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 Le=n(4604);const Oe={name:"ClockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Me=(0,bt.A)(Oe,(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,Ue={name:"ShareExpiryTime",components:{NcButton:dt.A,NcPopover:ht.N,NcDateTime:Le.A,ClockIcon:Me},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 $e=n(63316),Fe={};Fe.styleTagTransform=C(),Fe.setAttributes=A(),Fe.insert=f().bind(null,"head"),Fe.domAPI=d(),Fe.insertStyleElement=v(),h()($e.A,Fe),$e.A&&$e.A.locals&&$e.A.locals;const Ve=(0,bt.A)(Ue,(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: {date}",{date: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,"46cd2ca2",null).exports,je={name:"ExternalShareAction",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,default:()=>{},required:!0},share:{type:gt,default:null}},computed:{data(){return this.action.data(this)}}},ze=(0,bt.A)(je,(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,qe={name:"SharingEntryLink",components:{ExternalShareAction:ze,NcActions:X.A,NcActionButton:Q.A,NcActionCheckbox:se.N,NcActionInput:ae.A,NcActionLink:Vt.A,NcActionText:jt.A,NcActionSeparator:oe.A,NcAvatar:E.A,NcDialog:le.A,VueQrcode:re(),Tune:he,IconCalendarBlank:de,IconQr:fe,ErrorIcon:Ae,LockIcon:ve,CheckIcon:Ce,ClipboardIcon:vt.A,CloseIcon:we.A,PlusIcon:be.A,SharingEntryQuickShareSelect:Be,ShareExpiryTime:Ve},mixins:[Yt,Lt],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,showQRCode:!1}),computed:{title(){const t={escape:!1};if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?(0,_.t)("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName},t):(0,_.t)("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName},t);if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?(0,_.t)("files_sharing","File request ({label})",{label:this.share.label.trim()},t):(0,_.t)("files_sharing","Mail share ({label})",{label:this.share.label.trim()},t):(0,_.t)("files_sharing","Share link ({label})",{label:this.share.label.trim()},t);if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?(0,_.t)("files_sharing","File request"):(0,_.t)("files_sharing","Mail share");if(null===this.index)return(0,_.t)("files_sharing","Share link")}return this.index>=1?(0,_.t)("files_sharing","Share link ({index})",{index:this.index}):(0,_.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,ut.A)(this.share.passwordExpirationTime);return!(t.diff((0,ut.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===lt.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,l.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,l.$_)()})},actionsTooltip(){return(0,_.t)("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkTooltip(){return this.copied?this.copySuccess?"":(0,_.t)("files_sharing","Cannot copy, please copy the link manually"):(0,_.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(lt.I.Link)||t.shareType.includes(lt.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 t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(ft.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const e={share_type:lt.I.Link};if(this.config.isDefaultExpireDateEnforced&&(e.expiration=this.formatDateToString(this.config.defaultExpirationDate)),ft.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===t)){this.pending=!0,this.shareCreationComplete=!1,ft.info("Share policy requires a review or has mandated properties (password, expirationDate)..."),(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&(e.password=await Ht(!0));const t=new gt(e),i=await new Promise((e=>{this.$emit("add:share",t,e)}));this.open=!1,this.pending=!1,i.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{ft.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,ft.info("Share created on server",this.share)}catch(t){return this.pending=!1,ft.error("Error creating share",t),!1}return!0}return this.open=!0,(0,At.Qg)((0,_.t)("files_sharing","Error, please enter proper password and/or expiration date")),!1}const t=new gt(e);await this.pushNewLinkShare(t),this.shareCreationComplete=!0}},async pushNewLinkShare(t,e){try{if(this.loading)return!0;this.loading=!0,this.errors={};const i={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:lt.I.Link,password:t.password,expireDate:t.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};console.debug("Creating link share with options",i);const n=await this.createShare(i);let r;this.open=!1,this.shareCreationComplete=!0,console.debug("Link share created",n),r=e?await new Promise((t=>{this.$emit("update:share",n,t)})):await new Promise((t=>{this.$emit("add:share",n,t)})),await this.getNode(),(0,Nt.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||r.copyLink(),(0,At.Te)((0,_.t)("files_sharing","Link share created"))}catch(t){const e=t?.response?.data?.ocs?.meta?.message;if(!e)return(0,At.Qg)((0,_.t)("files_sharing","Error while creating the share")),void console.error(t);throw e.match(/password/i)?this.onSyncError("password",e):e.match(/date/i)?this.onSyncError("expireDate",e):this.onSyncError("pending",e),t}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,At.Te)((0,_.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)}}},He=qe;var Ge=n(93057),We={};We.styleTagTransform=C(),We.setAttributes=A(),We.insert=f().bind(null,"head"),We.domAPI=d(),We.insertStyleElement=v(),h()(Ge.A,We),Ge.A&&Ge.A.locals&&Ge.A.locals;const Ye={name:"SharingLinkList",components:{SharingEntryLink:(0,bt.A)(He,(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,"48fba0bf",null).exports},mixins:[Lt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,s.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===lt.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:_.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)}}},Xe=(0,bt.A)(Ye,(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 Qe=n(26690);const Ze={name:"SharingEntry",components:{NcButton:dt.A,NcAvatar:E.A,DotsHorizontalIcon:Qe.A,NcSelect:x.A,ShareExpiryTime:Ve,SharingEntryQuickShareSelect:Be},mixins:[Yt,Lt],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===lt.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===lt.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===lt.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===lt.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===lt.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===lt.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===lt.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===lt.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Ke=n(70162),Je={};Je.styleTagTransform=C(),Je.setAttributes=A(),Je.insert=f().bind(null,"head"),Je.domAPI=d(),Je.insertStyleElement=v(),h()(Ke.A,Je),Ke.A&&Ke.A.locals&&Ke.A.locals;const ti={name:"SharingList",components:{SharingEntry:(0,bt.A)(Ze,(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:[Lt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0}},setup:()=>({t:_.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===lt.I.User&&t.shareWithDisplayName===e.shareWithDisplayName)).length<=1}}},ei=(0,bt.A)(ti,(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 ii=n(32073),ni=n(88984),ri=n(16879),si=n(59892),ai=n(16044),oi=n(177);const li={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ci=(0,bt.A)(li,(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,hi={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ui=(0,bt.A)(hi,(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 di=n(36600),pi=n(43261);const fi={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gi=(0,bt.A)(fi,(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,Ai={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mi=(0,bt.A)(Ai,(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,vi={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},yi=(0,bt.A)(vi,(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 Ci=n(65422),wi=n(25384),bi=n(33388);const _i={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ei=(0,bt.A)(_i,(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,xi={name:"SharingDetailsTab",components:{NcAvatar:E.A,NcButton:dt.A,NcCheckboxRadioSwitch:ii.A,NcDateTimePickerNative:ni.A,NcInputField:ri.A,NcLoadingIcon:si.A,NcPasswordField:ai.A,NcTextArea:oi.A,CloseIcon:we.A,CircleIcon:ci,EditIcon:Ie.A,ExternalShareAction:ze,LinkIcon:di.A,GroupIcon:pi.A,ShareIcon:gi,UserIcon:mi,UploadIcon:Ci.A,ViewIcon:yi,MenuDownIcon:wi.A,MenuUpIcon:bi.A,DotsHorizontalIcon:Qe.A,Refresh:Ei},mixins:[Pt,Yt],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:Bt.ALL.toString(),revertSharingPermission:Bt.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:Bt,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case lt.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case lt.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case lt.I.Link:return t("files_sharing","Share link");case lt.I.Group:return t("files_sharing","Share with group");case lt.I.Room:return t("files_sharing","Share in conversation");case lt.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 lt.I.RemoteGroup:return t("files_sharing","Share with remote group");case lt.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===lt.I.User},isGroupShare(){return this.share.type===lt.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==lt.I.Link&&this.share.type!==lt.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!==lt.I.Link&&this.share.type!==lt.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===lt.I.Link||this.share.type===lt.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ut.A)(this.share.passwordExpirationTime);return!(t.diff((0,ut.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===lt.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={[Rt.READ]:this.t("files_sharing","Read"),[Rt.CREATE]:this.t("files_sharing","Create"),[Rt.UPDATE]:this.t("files_sharing","Edit"),[Rt.SHARE]:this.t("files_sharing","Share"),[Rt.DELETE]:this.t("files_sharing","Delete")};return[Rt.READ,...this.isFolder?[Rt.CREATE]:[],Rt.UPDATE,...this.resharingIsPossible?[Rt.SHARE]:[],...this.isFolder?[Rt.DELETE]:[]].filter((t=>{return e=this.share.permissions,i=t,e!==Rt.NONE&&(e&i)===i;var e,i})).map(((e,i)=>0===i?t[e]:t[e].toLocaleLowerCase((0,_.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(lt.I.Link)||t.shareType.includes(lt.I.Email))&&t.advanced))}},watch:{setCustomPermissions(t){this.sharingPermission=t?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),ft.debug("Share object received",{share:this.share}),ft.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 K.Ay.get((0,l.KT)("/apps/files_sharing/api/v1/token"));return t.ocs.data.token})()}catch(e){(0,At.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||(ft.debug("Ignoring create/delete permissions for file share — only available for folders"),i=!1,n=!1);const s=(t?Rt.READ:0)|(i?Rt.CREATE:0)|(n?Rt.DELETE:0)|(e?Rt.UPDATE:0)|(r?Rt.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 Ht(!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.isValidShareAttribute(this.share.note)&&(this.writeNoteToRecipientIsChecked=!0,this.advancedSectionAccordionExpanded=!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===Bt.READ_ONLY||t===Bt.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!==Bt.ALL||(this.share.permissions=Bt.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,Nt.Ic)("update:share",this.share),this.queueUpdate(...t);await this.getNode(),(0,Nt.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){ft.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){ft.error("Error while adding new share",{error:t})}},async removeShare(){await this.onDelete(),await this.getNode(),(0,Nt.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 lt.I.Link:return di.A;case lt.I.Guest:return mi;case lt.I.RemoteGroup:case lt.I.Group:return pi.A;case lt.I.Email:return ui;case lt.I.Team:return ci;case lt.I.Room:case lt.I.Deck:case lt.I.ScienceMesh:return gi;default:return null}}}};var Si=n(10288),Ii={};Ii.styleTagTransform=C(),Ii.setAttributes=A(),Ii.insert=f().bind(null,"head"),Ii.domAPI=d(),Ii.insertStyleElement=v(),h()(Si.A,Ii),Si.A&&Si.A.locals&&Si.A.locals;const ki=(0,bt.A)(xi,(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,"4826394a",null).exports,Ti={name:"SharingTab",components:{CollectionList:ot,InfoIcon:ct.A,NcAvatar:E.A,NcButton:dt.A,NcPopover:ht.N,SharingEntryInternal:It,SharingEntrySimple:_t,SharingInherited:ie,SharingInput:$t,SharingLinkList:Xe,SharingList:ei,SharingDetailsTab:ki},mixins:[Lt],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,o.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 null!==this.sharedWithMe&&void 0!==this.sharedWithMe},isLinkSharingAllowed(){if(!(0,r.HW)())return!1;const t=(0,s.F)();return!0===(t.files_sharing?.public||{}).enabled},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.isLinkSharingAllowed?this.config.showFederatedSharesAsInternal?t("files_sharing","Email"):t("files_sharing","Email, federated cloud ID"):t("files_sharing","Federated cloud ID")}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,l.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=K.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=K.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,ut.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ut.A)(1e3*i).fromNow()})),(0,ut.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,a.My)(e.ocs.data.map((t=>new gt(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);for(const e of t)[lt.I.Link,lt.I.Email].includes(e.type)?this.linkShares.push(e):[lt.I.Remote,lt.I.RemoteGroup].includes(e.type)?this.config.showFederatedSharesAsInternal?this.shares.push(e):this.externalShares.push(e):this.shares.push(e);ft.debug(`Processed ${this.linkShares.length} link share(s)`),ft.debug(`Processed ${this.shares.length} share(s)`),ft.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 gt(i),n=function(e){return e.type===lt.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===lt.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===lt.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,ut.A)(e.expireDate).unix()>(0,ut.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===lt.I.Email?this.linkShares.unshift(t):[lt.I.Remote,lt.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===lt.I.Email||t.type===lt.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===lt.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}))}}},Ni=Ti;var Di=n(92158),Pi={};Pi.styleTagTransform=C(),Pi.setAttributes=A(),Pi.insert=f().bind(null,"head"),Pi.domAPI=d(),Pi.insertStyleElement=v(),h()(Di.A,Pi),Di.A&&Di.A.locals&&Di.A.locals;const Ri=(0,bt.A)(Ni,(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.isLinkSharingAllowed?e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}}):t._e()],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,"592538f1",null).exports},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,KT:()=>h,My:()=>g,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,di:()=>c,lJ:()=>n.d,nF:()=>l,pt:()=>n.F,ur:()=>A,v7:()=>p});var n=i(68251),r=i(87485),s=(i(43627),i(53334)),a=i(380),o=i(65606),l=(t=>(t.ReservedName="reserved name",t.Character="character",t.Extension="extension",t))(l||{});class c extends Error{constructor(t){super(`Invalid ${t.reason} '${t.segment}' in filename '${t.filename}'`,{cause:t})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function h(t){const e=(0,r.F)().files,i=e.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const e of i)if(t.includes(e))throw new c({segment:e,reason:"character",filename:t});if(t=t.toLocaleLowerCase(),(e.forbidden_filenames??[".htaccess"]).includes(t))throw new c({filename:t,segment:t,reason:"reserved name"});const n=t.indexOf(".",1),s=t.substring(0,-1===n?void 0:n);if((e.forbidden_filename_basenames??[]).includes(s))throw new c({filename:t,segment:s,reason:"reserved name"});const a=e.forbidden_filename_extensions??[".part",".filepart"];for(const e of a)if(t.length>e.length&&t.endsWith(e))throw new c({segment:e,reason:"extension",filename:t})}const u=["B","KB","MB","GB","TB","PB"],d=["B","KiB","MiB","GiB","TiB","PiB"];function p(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let r=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;r=Math.min((i?d.length:u.length)-1,r);const a=i?d[r]:u[r];let o=(t/Math.pow(n?1e3:1024,r)).toFixed(1);return!0===e&&0===r?("0.0"!==o?"< 1 ":"0 ")+(i?d[1]:u[1]):(o=r<2?parseFloat(o).toFixed(0):parseFloat(o).toLocaleString((0,s.lO)()),o+" "+a)}function f(t){return t instanceof Date?t.toISOString():String(t)}function g(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),r=Intl.Collator([(0,s.Z0)(),(0,s.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[s,a]of e.entries()){const e=r.compare(f(a(t)),f(a(i)));if(0!==e)return e*n[s]}return 0}))}function A(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return g(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 m,v,y={},C={};function w(){return m||(m=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}(C)),C}function b(){if(v)return y;v=1;const t=w(),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}y.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.",f(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",f(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",f(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",f(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",f(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 f(t){return t.startIndex+t[1].length}return y}var _,E,x,S,I,k,T,N,D,P,R,B={};function L(){return D?N:(D=1,N=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 O,M,U,$,F,V,j,z,q,H,G,W,Y,X={};function Q(){if(O)return X;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 O=1,X.prettify=function(e,i){return t(e,i)},X}function Z(){if(U)return M;U=1;const{buildOptions:t}=function(){if(_)return B;_=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 B.buildOptions=function(e){return Object.assign({},t,e)},B.defaultOptions=t,B}(),e=function(){if(R)return P;R=1;const t=w(),e=x?E:(x=1,E=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(I)return S;I=1;const t=w();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 S=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(T)return k;T=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 k=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=L();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?v(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:v(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 m(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 v(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 P=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=m,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=Q(),n=b();return M=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 K(){if(F)return $;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 F=1,$=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function J(){if(G)return H;G=1;const t="object"==typeof o&&o.env&&o.env.NODE_DEBUG&&/\bsemver\b/i.test(o.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return H=t}function tt(){if(Y)return W;Y=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return W={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(q)return z;q=1;const t=b(),e=Z(),i=function(){if(j)return V;j=1;const t=K(),e=L(),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},V=n}();z={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var et,it,nt,rt,st,at,ot,lt,ct,ht,ut,dt,pt,ft={exports:{}};function gt(){if(ot)return at;ot=1;const t=J(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=tt(),{safeRe:n,t:r}=(et||(et=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=tt(),s=J(),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*$")}(ft,ft.exports)),ft.exports),s=function(){if(nt)return it;nt=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return it=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(st)return rt;st=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 rt={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 at=o}!function(){if(ut)return ht;ut=1;const t=function(){if(ct)return lt;ct=1;const t=gt();return lt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();ht=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(pt)return dt;pt=1;const t=gt();dt=(e,i)=>new t(e,i).major}(),a.m},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},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},63316:(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-46cd2ca2]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-46cd2ca2]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-46cd2ca2]{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-46cd2ca2]{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},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},92158:(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-592538f1]{margin:1rem auto}.sharingTab[data-v-592538f1]{position:relative;height:100%}.sharingTab__content[data-v-592538f1]{padding:0 6px}.sharingTab__content section[data-v-592538f1]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-592538f1]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-592538f1]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-592538f1]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-592538f1]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-592538f1]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-592538f1]{margin:44px 0}.hint-body[data-v-592538f1]{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},93057:(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-48fba0bf]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-48fba0bf]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-48fba0bf]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-48fba0bf]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-48fba0bf]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-48fba0bf]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-48fba0bf]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-48fba0bf] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-48fba0bf]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-48fba0bf]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-48fba0bf],.sharing-entry .action-item~.sharing-entry__loading[data-v-48fba0bf]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-48fba0bf]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-48fba0bf]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-48fba0bf]{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=8708-8708.js.map?v=5d824d632209307d82c7
\ No newline at end of file diff --git a/dist/7701-7701.js.license b/dist/8708-8708.js.license index 62e0f72c086..62e0f72c086 100644 --- a/dist/7701-7701.js.license +++ b/dist/8708-8708.js.license diff --git a/dist/8708-8708.js.map b/dist/8708-8708.js.map new file mode 100644 index 00000000000..7d6c964d216 --- /dev/null +++ b/dist/8708-8708.js.map @@ -0,0 +1 @@ +{"version":3,"file":"8708-8708.js?v=5d824d632209307d82c7","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/SharingDetailsTab.vue?vue&type=style&index=0&id=4826394a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","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?ac36","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?9934","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?b625","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?f56b","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","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/components/SharingEntryInherited.vue?vue&type=style&index=0&id=fe8ed59e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/ShareExpiryTime.vue?vue&type=style&index=0&id=46cd2ca2&prod&scoped=true&lang=scss","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/views/SharingTab.vue?vue&type=style&index=0&id=592538f1&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=48fba0bf&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, `.sharingTabDetailsView[data-v-4826394a]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4826394a]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4826394a]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4826394a]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-4826394a]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-4826394a]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4826394a]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-4826394a] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4826394a]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4826394a]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-4826394a],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4826394a]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4826394a]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4826394a] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4826394a]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-4826394a]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-4826394a]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4826394a]{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-4826394a]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-4826394a]: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","/*!\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","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 && _vm.isLinkSharingAllowed)?_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: {date}', { date: 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: {date}', { date: 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=46cd2ca2&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=46cd2ca2&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=46cd2ca2&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=46cd2ca2&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 \"46cd2ca2\",\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 { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { generateUrl, getBaseUrl } from '@nextcloud/router'\nimport { ShareType } from '@nextcloud/sharing'\n\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\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 logger from '../services/logger.ts'\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\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\tconst l10nOptions = { escape: false /* no escape as this string is already escaped by Vue */ }\n\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}, l10nOptions)\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}, l10nOptions)\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}, l10nOptions)\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}, l10nOptions)\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}, l10nOptions)\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\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\tlogger.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\tlogger.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\tlogger.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\tlogger.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\tlogger.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\tlogger.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=48fba0bf&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=48fba0bf&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=48fba0bf&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=48fba0bf&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 \"48fba0bf\",\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.isValidShareAttribute(this.share.note)) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t\tthis.advancedSectionAccordionExpanded = 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=4826394a&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=4826394a&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=4826394a&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=4826394a&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 \"4826394a\",\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 && isLinkSharingAllowed\"\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 { getCapabilities } from '@nextcloud/capabilities'\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 this.sharedWithMe !== null\n\t\t\t\t&& this.sharedWithMe !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is link sharing allowed for the current user?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisLinkSharingAllowed() {\n\t\t\tconst currentUser = getCurrentUser()\n\t\t\tif (!currentUser) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tconst publicSharing = capabilities.files_sharing?.public || {}\n\t\t\treturn publicSharing.enabled === true\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\tif (!this.isLinkSharingAllowed) {\n\t\t\t\treturn t('files_sharing', 'Federated cloud ID')\n\t\t\t}\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=592538f1&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=592538f1&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=592538f1&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=592538f1&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 \"592538f1\",\n null\n \n)\n\nexport default component.exports","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, `.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, `.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","// 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-46cd2ca2]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-46cd2ca2]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-46cd2ca2]{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-46cd2ca2]{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[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, `.emptyContentWithSections[data-v-592538f1]{margin:1rem auto}.sharingTab[data-v-592538f1]{position:relative;height:100%}.sharingTab__content[data-v-592538f1]{padding:0 6px}.sharingTab__content section[data-v-592538f1]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-592538f1]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-592538f1]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-592538f1]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-592538f1]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-592538f1]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-592538f1]{margin:44px 0}.hint-body[data-v-592538f1]{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, `.sharing-entry[data-v-48fba0bf]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-48fba0bf]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-48fba0bf]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-48fba0bf]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-48fba0bf]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-48fba0bf]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-48fba0bf]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-48fba0bf] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-48fba0bf]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-48fba0bf]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-48fba0bf],.sharing-entry .action-item~.sharing-entry__loading[data-v-48fba0bf]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-48fba0bf]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-48fba0bf]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-48fba0bf]{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","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","global","freeSelf","self","Function","Date","now","reWhitespace","reTrimStart","charAt","objectProto","nativeObjectToString","symToStringTag","toStringTag","isOwn","unmasked","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","nativeMax","nativeMin","service","http","listCollection","collectionId","renameCollection","collectionName","ocs","getCollectionsByResource","resourceType","resourceId","createCollection","post","response","addResource","removeResource","delete","params","search","query","state","collections","mutations","addCollections","addCollection","collection","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","add","_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","attrs","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","thisArg","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","window","OCP","Collaboration","getTypes","method","title","getLabel","action","trigger","select","selectedOption","id2","setError","showSelect","$refs","focus","hideSelect","isVueComponent","object","_isVue","CollectionList","_m","ref","scopedSlots","_u","option","callback","$$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","build","Share","ocsData","hide_download","mail_send","attributes","JSON","parse","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","token","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","stringify","setAttribute","attrUpdate","attr","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","message","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","debug","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","format","perPage","exact","rawExactSuggestions","values","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","toISOString","onExpirationChange","parsedDate","onNoteChange","onNoteSubmit","newNote","queueUpdate","onDelete","_len","propertyNames","_key","updatedShare","updateSuccessMessage","onSyncError","names","property","propertyEl","focusable","querySelector","debounceQueueUpdate","NcActionLink","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","basename","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","l10nOptions","escape","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","match","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","prop","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","isLinkSharingAllowed","capabilities","internalShareInputPlaceholder","externalShareInputPlaceholder","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","activeElement","classList","className","startsWith","menuId","emptyContentWithSections","section","InvalidFilenameErrorReason","InvalidFilenameErrorReason2","InvalidFilenameError","super","reason","segment","filename","cause","validateFilename","files","forbiddenCharacters","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","basename2","substring","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","extension","endsWith","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","parseFloat","identifiers2","orders","sorting","collator","Intl","Collator","usage","a2","b2","identifier","entries","sortNodes","sortingOptions","sortingMode","sortingOrder","sortFavoritesFirst","favorite","sortFoldersFirst","displayname","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","i2","getValue","isName","getAllMatches","matches","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","readAttributeStr","attrStr","attrStrStart","validateAttributeString","line","tagClosed","otg","openPos","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","count","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","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","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","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","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attrVal","suppressBooleanAttributes","textValue","jArray","requireDebug","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","ajPath","j2x","buildTextValNode","buildObjectNode","repeat","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","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","compareMain","comparePre","compareBuild","release","identifierBase","base","throwErrors","er","requireParse","requireValid","requireMajor","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","iterator","appendTo","dict","has","getAll","propValue","useProxy","Proxy","construct","USPProto","polyfill","parseToDict","getOwnPropertyNames","k","items","makeIterator","prev","cur","decode","decodeURIComponent","next","done","pairs"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/8708-8708.js.map.license b/dist/8708-8708.js.map.license new file mode 120000 index 00000000000..51f9cb0115e --- /dev/null +++ b/dist/8708-8708.js.map.license @@ -0,0 +1 @@ +8708-8708.js.license
\ No newline at end of file diff --git a/dist/files-main.js b/dist/files-main.js index 7fe51f5c686..14d37f30eaa 100644 --- a/dist/files-main.js +++ b/dist/files-main.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e,s,i,n={77:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,'.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:"";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}',"",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA",sourcesContent:["\n// Grid mode\n.files-list--grid tbody.files-list__tbody {\n\t--item-padding: 16px;\n\t--icon-preview-size: 166px;\n\t--name-height: var(--default-clickable-area);\n\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\n\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\n\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\n\t--checkbox-padding: 0px;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, var(--row-width));\n\n\talign-content: center;\n\talign-items: center;\n\tjustify-content: space-around;\n\tjustify-items: center;\n\n\ttr {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--row-width);\n\t\theight: var(--row-height);\n\t\tborder: none;\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: var(--item-padding);\n\t}\n\n\t// Checkbox in the top left\n\t.files-list__row-checkbox {\n\t\tposition: absolute;\n\t\tz-index: 9;\n\t\ttop: calc(var(--item-padding) / 2);\n\t\tinset-inline-start: calc(var(--item-padding) / 2);\n\t\toverflow: hidden;\n\t\t--checkbox-container-size: 44px;\n\t\twidth: var(--checkbox-container-size);\n\t\theight: var(--checkbox-container-size);\n\n\t\t// Add a background to the checkbox so we do not see the image through it.\n\t\t.checkbox-radio-switch__content::after {\n\t\t\tcontent: '';\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tposition: absolute;\n\t\t\tinset-inline-start: 50%;\n\t\t\tmargin-inline-start: -8px;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\t}\n\n\t// Star icon in the top right\n\t.files-list__row-icon-favorite {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tinset-inline-end: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n\n\t.files-list__row-name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--icon-preview-size);\n\t\theight: calc(var(--icon-preview-size) + var(--name-height));\n\t\t// Ensure that the name outline is visible.\n\t\toverflow: visible;\n\n\t\tspan.files-list__row-icon {\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: var(--icon-preview-size);\n\t\t}\n\n\t\t.files-list__row-name-text {\n\t\t\tmargin: 0;\n\t\t\t// Ensure that the outline is not too close to the text.\n\t\t\tmargin-inline-start: -4px;\n\t\t\tpadding: 0px 4px;\n\t\t}\n\t}\n\n\t.files-list__row-mtime {\n\t\twidth: var(--icon-preview-size);\n\t\theight: var(--mtime-height);\n\t\tfont-size: var(--font-size-small);\n\t}\n\n\t.files-list__row-actions {\n\t\tposition: absolute;\n\t\tinset-inline-end: calc(var(--clickable-area) / 4);\n\t\tinset-block-end: calc(var(--mtime-height) / 2);\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n}\n\n@media screen and (max-width: 768px) {\n\t// there is no mtime\n\t.files-list--grid tbody.files-list__tbody {\n\t\t--mtime-height: 0px;\n\n\t\t// so we move the action to the name\n\t\t.files-list__row-actions {\n\t\t\tinset-block-end: var(--item-padding);\n\t\t}\n\n\t\t// and we need to keep space on the name for the actions\n\t\t.files-list__row-name-text {\n\t\t\tpadding-inline-end: var(--clickable-area) !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const r=o},3538:(e,s,i)=>{var n=i(21777),a=i(65899),o=i(85471);const r=()=>(window._nc_files_pinia||(window._nc_files_pinia=(0,a.Ey)()),window._nc_files_pinia);var l=i(94205),d=i(43627),c=i(85168),m=i(35810),g=i(32981),u=i(53334),f=i(49264),p=i(5655),h=i(71225),v=i(77764);const w=new m.VP({id:"files_trashbin--original-location",title:(0,u.t)("files_trashbin","Original location"),render(e){const t=y(e),s=document.createElement("span");return s.title=t,s.textContent=t,s},sort(e,t){const s=y(e),i=y(t);return s.localeCompare(i,[(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"})}}),A=new m.VP({id:"files_trashbin--deleted-by",title:(0,u.t)("files_trashbin","Deleted by"),render(e){const{userId:t,displayName:s,label:i}=C(e);if(i){const e=document.createElement("span");return e.textContent=i,e}return new(o.Ay.extend(v.A))({propsData:{size:32,user:t??void 0,displayName:s??t}}).$mount().$el},sort(e,t){const s=C(e),i=s.label??s.displayName??s.userId,n=C(t),a=n.label??n.displayName??n.userId;return i.localeCompare(a,[(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"})}}),b=new m.VP({id:"files_trashbin--deleted",title:(0,u.t)("files_trashbin","Deleted"),render(e){const t=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3,s=document.createElement("span");if(t){const e=Intl.DateTimeFormat([(0,u.lO)()],{dateStyle:"long",timeStyle:"short"}),i=new Date(1e3*t);return s.title=e.format(i),s.textContent=(0,u.fw)(i,{ignoreSeconds:(0,u.t)("files","few seconds ago")}),s}return s.textContent=(0,u.t)("files_trashbin","A long time ago"),s},sort(e,t){const s=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3;return(t.attributes?.["trashbin-deletion-time"]||(t?.mtime?.getTime()??0)/1e3)-s}});function y(e){const t=k(e.attributes?.["trashbin-original-location"]);if(!t)return(0,u.t)("files_trashbin","Unknown");const s=(0,h.pD)(t);return s===t?(0,u.t)("files_trashbin","All files"):s.replace(/^\//,"")}function C(e){const t=k(e.attributes?.["trashbin-deleted-by-id"]),s=k(e.attributes?.["trashbin-deleted-by-display-name"]);let i;const a=(0,n.HW)()?.uid;return t===a&&(i=(0,u.t)("files_trashbin","You")),t||s||(i=(0,u.t)("files_trashbin","Unknown")),{userId:t,displayName:s,label:i}}function k(e){return e?String(e):null}const _=`/trashbin/${(0,n.HW)()?.uid}/trash`,x=(0,m.H4)();var T=i(63814);const S=`<?xml version="1.0"?>\n<d:propfind ${(0,m.CP)()}>\n\t<d:prop>\n\t\t<nc:trashbin-deletion-time />\n\t\t<nc:trashbin-original-location />\n\t\t<nc:trashbin-title />\n\t\t<nc:trashbin-deleted-by-id />\n\t\t<nc:trashbin-deleted-by-display-name />\n\t\t${(0,m.VX)()}\n\t</d:prop>\n</d:propfind>`,L=e=>{const t=(0,m.Al)(e,_);return t.attributes.previewUrl=(0,T.Jv)("/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32",{fileid:t.fileid}),t};var N=i(45174);const F="trashbin";new m.Ss({id:F,name:(0,u.t)("files_trashbin","Deleted files"),caption:(0,u.t)("files_trashbin","List of files that have been deleted."),emptyTitle:(0,u.t)("files_trashbin","No deleted files"),emptyCaption:(0,u.t)("files_trashbin","Files and folders you have deleted will show up here"),icon:N,order:50,sticky:!0,defaultSortKey:"deleted",columns:[w,A,b],getContents:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=(await x.getDirectoryContents(`${_}${e}`,{details:!0,data:S,includeSelf:!0})).data.map(L),[s]=t.splice(t.findIndex((t=>t.path===e)),1);return{folder:s,contents:t}}});var U=i(61338),E=i(87485),I=i(65043);const P=()=>!0===(0,E.F)()?.files?.undelete,z=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),B=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),D=(e,t)=>z(e)?1===e.length?(0,u.t)("files","Leave this share"):(0,u.t)("files","Leave these shares"):B(e)?1===e.length?(0,u.t)("files","Disconnect storage"):(0,u.t)("files","Disconnect storages"):"trashbin"!==t.id&&P()?(e=>{if(1===e.length)return!1;const t=e.some((e=>z([e]))),s=e.some((e=>!z([e])));return t&&s})(e)?(0,u.t)("files","Delete and unshare"):(e=>!e.some((e=>e.type!==m.pt.File)))(e)?1===e.length?(0,u.t)("files","Delete file"):(0,u.t)("files","Delete files"):(e=>!e.some((e=>e.type!==m.pt.Folder)))(e)?1===e.length?(0,u.t)("files","Delete folder"):(0,u.t)("files","Delete folders"):(0,u.t)("files","Delete"):(0,u.t)("files","Delete permanently"),R=async(e,t)=>{const s="trashbin"!==t.id&&P()?(0,u.n)("files","You are about to delete {count} item","You are about to delete {count} items",e.length,{count:e.length}):(0,u.n)("files","You are about to permanently delete {count} item","You are about to permanently delete {count} items",e.length,{count:e.length});return new Promise((i=>{window.OC.dialogs.confirmDestructive(s,(0,u.t)("files","Confirm deletion"),{type:window.OC.dialogs.YES_NO_BUTTONS,confirm:D(e,t),confirmClasses:"error",cancel:(0,u.t)("files","Cancel")},(e=>{i(e)}))}))},O=async e=>{await I.Ay.delete(e.encodedSource),(0,U.Ic)("files:node:deleted",e)},j=(0,i(35947).YK)().setApp("files").detectUser().build(),M=new f.A({concurrency:5}),V=new m.hY({id:"delete",displayName:D,iconSvgInline:e=>z(e)?p:B(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:(e,t)=>(t.id!==F||!1!==(0,g.C)("files_trashbin","config",{allow_delete:!0}).allow_delete)&&(e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&m.aX.DELETE)))),async exec(e,t){try{let s=!0;const i=((new Error).stack||"").toLocaleLowerCase().includes("keydown");return P()&&!i||(s=await R([e],t)),!1===s?((0,c.cf)((0,u.Tl)("files","Deletion cancelled")),null):(await O(e),!0)}catch(t){return j.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t){let s=!0;if(P()?e.length>=5&&!z(e)&&!B(e)&&(s=await R(e,t)):s=await R(e,t),!1===s)return(0,c.cf)((0,u.Tl)("files","Deletion cancelled")),Promise.all(e.map((()=>null)));const i=e.map((e=>new Promise((t=>{M.add((async()=>{try{await O(e),t(!0)}catch(s){j.error("Error while deleting a file",{error:s,source:e.source,node:e}),t(!1)}}))}))));return Promise.all(i)},order:100});var $=i(82680),W=i(63006),H=i(11459);const q=new f.A({concurrency:5}),Y=e=>e.some((e=>1!==e.attributes.favorite)),G=async(e,t,s)=>{try{const i=(0,T.Jv)("/apps/files/api/v1/files")+(0,h.O0)(e.path);return await I.Ay.post(i,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,U.Ic)("files:node:deleted",e),o.Ay.set(e.attributes,"favorite",s?1:0),s?(0,U.Ic)("files:favorites:added",e):(0,U.Ic)("files:favorites:removed",e),!0}catch(t){const i=s?"adding a file to favourites":"removing a file from favourites";return j.error("Error while "+i,{error:t,source:e.source,node:e}),!1}},K=new m.hY({id:"favorite",displayName:e=>Y(e)?(0,u.Tl)("files","Add to favorites"):(0,u.Tl)("files","Remove from favorites"),iconSvgInline:e=>Y(e)?W:H,enabled:e=>!(0,$.f)()&&e.every((e=>e.root?.startsWith?.("/files")))&&e.every((e=>e.permissions!==m.aX.NONE)),async exec(e,t){const s=Y([e]);return await G(e,t,s)},async execBatch(e,t){const s=Y(e),i=e.map((e=>new Promise((i=>{q.add((async()=>{try{await G(e,t,s),i(!0)}catch(t){j.error("Error while adding file to favorite",{error:t,source:e.source,node:e}),i(!1)}}))}))));return Promise.all(i)},order:-50});var Q=i(19664);const J=new m.hY({id:"rename",displayName:()=>(0,u.Tl)("files","Rename"),iconSvgInline:()=>Q,enabled:(e,t)=>0!==e.length&&"public-file-share"!==t.id&&e.every((e=>Boolean(e.permissions&m.aX.DELETE))),exec:async e=>((0,U.Ic)("files:node:rename",e),null),order:10});var X=i(49981);const Z=new m.hY({id:"details",displayName:()=>(0,u.Tl)("files","Open details"),iconSvgInline:()=>X,enabled:e=>!(0,$.f)()&&1===e.length&&!!e[0]&&!!window?.OCA?.Files?.Sidebar&&((e[0].root?.startsWith("/files/")&&e[0].permissions!==m.aX.NONE)??!1),async exec(e,t,s){try{return window.OCA.Files.Sidebar.file===e.path?(j.debug("Sidebar already open for this file",{node:e}),null):(window.OCA.Files.Sidebar.setActiveTab("sharing"),await window.OCA.Files.Sidebar.open(e.path),window.OCP?.Files?.Router?.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{...window.OCP.Files.Router.query,dir:s,opendetails:"true"},!0),null)}catch(e){return j.error("Error while opening sidebar",{error:e}),!1}},order:-50}),ee=function(){const e=(0,a.nY)("active",{state:()=>({_initialized:!1,activeNode:null,activeView:null,activeAction:null}),actions:{setActiveNode(e){if(!e)throw new Error("Use clearActiveNode to clear the active node");j.debug("Setting active node",{node:e}),this.activeNode=e},clearActiveNode(){this.activeNode=null},onDeletedNode(e){this.activeNode&&this.activeNode.source===e.source&&this.clearActiveNode()},setActiveAction(e){this.activeAction=e},clearActiveAction(){this.activeAction=null},onChangedView(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;j.debug("Setting active view",{view:e}),this.activeView=e,this.clearActiveNode()}}}),t=e(...arguments),s=(0,m.bh)();return t._initialized||((0,U.B1)("files:node:deleted",t.onDeletedNode),t._initialized=!0,t.onChangedView(s.active),s.addEventListener("updateActive",(e=>{t.onChangedView(e.detail)}))),t},te=async e=>{const t=ee(r()),s=window?.OCP?.Files?.Router?.query?.dir||"/",i=t.activeNode,n=t.activeView;if(!i||!n)return void j.error("No active node or view",{node:i,view:n});if(i.status===m.zI.LOADING)return void j.debug("Node is already loading",{node:i});if(!e.enabled([i],n))return void j.debug("Action is not not available for the current context",{action:e,node:i,view:n});let a=e.id;try{a=e.displayName([i],n)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}try{o.Ay.set(i,"status",m.zI.LOADING),t.setActiveAction(e);const r=await e.exec(i,n,s);if(null==r)return;if(r)return void(0,c.Te)((0,u.t)("files",'"{displayName}" action executed successfully',{displayName:a}));(0,c.Qg)((0,u.t)("files",'"{displayName}" action failed',{displayName:a}))}catch(t){j.error("Error while executing action",{action:e,error:t}),(0,c.Qg)((0,u.t)("files",'"{displayName}" action failed',{displayName:a}))}finally{o.Ay.set(i,"status",void 0),t.clearActiveAction()}};var se=i(7421);var ie=i(22378);const ne={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var ae=i(14486);const oe=(0,ae.A)(ne,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var re=i(42530),le=i(52439),de=i(27345),ce=i(60126);function me(e,t,s){var i,n=s||{},a=n.noTrailing,o=void 0!==a&&a,r=n.noLeading,l=void 0!==r&&r,d=n.debounceMode,c=void 0===d?void 0:d,m=!1,g=0;function u(){i&&clearTimeout(i)}function f(){for(var s=arguments.length,n=new Array(s),a=0;a<s;a++)n[a]=arguments[a];var r=this,d=Date.now()-g;function f(){g=Date.now(),t.apply(r,n)}function p(){i=void 0}m||(l||!c||i||f(),u(),void 0===c&&d>e?l?(g=Date.now(),o||(i=setTimeout(c?p:f,e))):f():!0!==o&&(i=setTimeout(c?p:f,void 0===c?e-d:e)))}return f.cancel=function(e){var t=(e||{}).upcomingOnly,s=void 0!==t&&t;u(),m=!s},f}const ge={name:"ChartPieIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,ae.A)(ge,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chart-pie-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var fe=i(95101);const pe={name:"NavigationQuota",components:{ChartPie:ue,NcAppNavigationItem:le.A,NcProgressBar:fe.A},data:()=>({loadingStorageStats:!1,storageStats:(0,g.C)("files","storageStats",null)}),computed:{storageStatsTitle(){const e=(0,m.v7)(this.storageStats?.used,!1,!1),t=(0,m.v7)(this.storageStats?.quota,!1,!1);return this.storageStats?.quota<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:e}):this.t("files","{used} of {quota} used",{used:e,quota:t})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,U.B1)("files:node:created",this.throttleUpdateStorageStats),(0,U.B1)("files:node:deleted",this.throttleUpdateStorageStats),(0,U.B1)("files:node:moved",this.throttleUpdateStorageStats),(0,U.B1)("files:node:updated",this.throttleUpdateStorageStats)},mounted(){this.storageStats?.quota>0&&0===this.storageStats?.free&&this.showStorageFullWarning()},methods:{debounceUpdateStorageStats:(he={}.atBegin,me(200,(function(e){this.updateStorageStats(e)}),{debounceMode:!1!==(void 0!==he&&he)})),throttleUpdateStorageStats:me(1e3,(function(e){this.updateStorageStats(e)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{const e=await I.Ay.get((0,T.Jv)("/apps/files/api/v1/stats"));if(!e?.data?.data)throw new Error("Invalid storage stats");this.storageStats?.free>0&&0===e.data.data?.free&&e.data.data?.quota>0&&this.showStorageFullWarning(),this.storageStats=e.data.data}catch(s){j.error("Could not refresh storage stats",{error:s}),e&&(0,c.Qg)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},showStorageFullWarning(){(0,c.Qg)(this.t("files","Your storage is full, files can not be updated or synced anymore!"))},t:u.Tl}};var he,ve=i(85072),we=i.n(ve),Ae=i(97825),be=i.n(Ae),ye=i(77659),Ce=i.n(ye),ke=i(55056),_e=i.n(ke),xe=i(10540),Te=i.n(xe),Se=i(41113),Le=i.n(Se),Ne=i(75688),Fe={};Fe.styleTagTransform=Le(),Fe.setAttributes=_e(),Fe.insert=Ce().bind(null,"head"),Fe.domAPI=be(),Fe.insertStyleElement=Te(),we()(Ne.A,Fe),Ne.A&&Ne.A.locals&&Ne.A.locals;const Ue=(0,ae.A)(pe,(function(){var e=this,t=e._self._c;return e.storageStats?t("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":e.storageStats.quota>=0},attrs:{"aria-description":e.t("files","Storage information"),loading:e.loadingStorageStats,name:e.storageStatsTitle,title:e.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.debounceUpdateStorageStats.apply(null,arguments)}}},[t("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),e._v(" "),e.storageStats.quota>=0?t("NcProgressBar",{attrs:{slot:"extra","aria-label":e.t("files","Storage quota"),error:e.storageStats.relative>80,value:Math.min(e.storageStats.relative,100)},slot:"extra"}):e._e()],1):e._e()}),[],!1,null,"d3cdbf54",null).exports;var Ee=i(31773),Ie=i(29270),Pe=i(14727),ze=i(32073),Be=i(16879);const De={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},Re=(0,ae.A)(De,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,Oe={name:"Settings",components:{Clipboard:Ee.A,NcAppSettingsDialog:Ie.N,NcAppSettingsSection:Pe.A,NcCheckboxRadioSwitch:ze.A,NcInputField:Be.A,Setting:Re},props:{open:{type:Boolean,default:!1}},setup(){const e=(0,se.O)();return{isSystemtagsEnabled:!0===(0,E.F)()?.systemtags?.enabled,userConfigStore:e,t:u.t}},data:()=>({settings:window.OCA?.Files?.Settings?.settings||[],webdavUrl:(0,T.dC)("dav/files/"+encodeURIComponent((0,n.HW)()?.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,T.Jv)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1,enableGridView:(0,g.C)("core","config",[])["enable_non-accessible_features"]??!0}),computed:{userConfig(){return this.userConfigStore.userConfig}},created(){(0,l.C)("?",this.showKeyboardShortcuts,{stop:!0,prevent:!0})},beforeMount(){this.settings.forEach((e=>e.open()))},beforeDestroy(){this.settings.forEach((e=>e.close()))},methods:{onClose(){this.$emit("close")},setConfig(e,t){this.userConfigStore.update(e,t)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,c.Te)((0,u.t)("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,c.Qg)((0,u.t)("files","Clipboard is not available"))},async showKeyboardShortcuts(){this.$emit("update:open",!0),await this.$nextTick(),document.getElementById("settings-section_shortcuts").scrollIntoView({behavior:"smooth",inline:"nearest"})}}};var je=i(72383),Me={};Me.styleTagTransform=Le(),Me.setAttributes=_e(),Me.insert=Ce().bind(null,"head"),Me.domAPI=be(),Me.insertStyleElement=Te(),we()(je.A,Me),je.A&&je.A.locals&&je.A.locals;const Ve=(0,ae.A)(Oe,(function(){var e=this,t=e._self._c;return t("NcAppSettingsDialog",{attrs:{open:e.open,"show-navigation":!0,name:e.t("files","Files settings")},on:{"update:open":e.onClose}},[t("NcAppSettingsSection",{attrs:{id:"settings",name:e.t("files","Files settings")}},[t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_favorites_first",checked:e.userConfig.sort_favorites_first},on:{"update:checked":function(t){return e.setConfig("sort_favorites_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort favorites first"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_folders_first",checked:e.userConfig.sort_folders_first},on:{"update:checked":function(t){return e.setConfig("sort_folders_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort folders before files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_hidden",checked:e.userConfig.show_hidden},on:{"update:checked":function(t){return e.setConfig("show_hidden",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show hidden files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_mime_column",checked:e.userConfig.show_mime_column},on:{"update:checked":function(t){return e.setConfig("show_mime_column",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show file type column"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"crop_image_previews",checked:e.userConfig.crop_image_previews},on:{"update:checked":function(t){return e.setConfig("crop_image_previews",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Crop image previews"))+"\n\t\t")]),e._v(" "),e.enableGridView?t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"grid_view",checked:e.userConfig.grid_view},on:{"update:checked":function(t){return e.setConfig("grid_view",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable the grid view"))+"\n\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"folder_tree",checked:e.userConfig.folder_tree},on:{"update:checked":function(t){return e.setConfig("folder_tree",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable folder tree"))+"\n\t\t")])],1),e._v(" "),0!==e.settings.length?t("NcAppSettingsSection",{attrs:{id:"more-settings",name:e.t("files","Additional settings")}},[e._l(e.settings,(function(e){return[t("Setting",{key:e.name,attrs:{el:e.el}})]}))],2):e._e(),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"webdav",name:e.t("files","WebDAV")}},[t("NcInputField",{attrs:{id:"webdav-url-input",label:e.t("files","WebDAV URL"),"show-trailing-button":!0,success:e.webdavUrlCopied,"trailing-button-label":e.t("files","Copy to clipboard"),value:e.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(e){return e.target.select()},"trailing-button-click":e.copyCloudId},scopedSlots:e._u([{key:"trailing-button-icon",fn:function(){return[t("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[e._v("\n\t\t\t\t"+e._s(e.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),e._v(" "),t("br"),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.appPasswordUrl}},[e._v("\n\t\t\t\t"+e._s(e.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"warning",name:e.t("files","Warnings")}},[t("em",[e._v(e._s(e.t("files","Prevent warning dialogs from open or reenable them.")))]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.userConfig.show_dialog_file_extension},on:{"update:checked":function(t){return e.setConfig("show_dialog_file_extension",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show a warning dialog when changing a file extension."))+"\n\t\t")])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"shortcuts",name:e.t("files","Keyboard shortcuts")}},[t("em",[e._v(e._s(e.t("files","Speed up your Files experience with these quick shortcuts.")))]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Actions")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("a")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the actions menu for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("F2")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Rename a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Del")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Delete a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("s")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Favorite or remove a file from favorites"))+"\n\t\t\t\t")])]),e._v(" "),e.isSystemtagsEnabled?t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("t")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Manage tags for a file"))+"\n\t\t\t\t")])]):e._e()]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Selection")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("A")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("ESC")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Deselect all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Space")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select or deselect a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Shift")]),e._v(" "),t("span",[e._v("+ "),t("kbd",[e._v("Space")])])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select a range of files"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Navigation")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Alt")]),e._v(" + "),t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the parent folder"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file above"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↓")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file below"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("←")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the left (in grid mode)"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("→")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the right (in grid mode)"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","View")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("V")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Toggle the grid view"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("D")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the sidebar for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("?")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Show those shortcuts"))+"\n\t\t\t\t")])])])])],1)}),[],!1,null,"9a0994e0",null).exports;var $e=i(54914),We=i(6695);function He(e){const t=(0,m.bh)(),s=(0,o.IJ)(t.views),i=(0,o.IJ)(t.active);function n(e){i.value=e.detail}function a(){s.value=t.views,(0,o.mu)(s)}return(0,o.sV)((()=>{t.addEventListener("update",a),t.addEventListener("updateActive",n),(0,U.B1)("files:navigation:updated",a)})),(0,o.hi)((()=>{t.removeEventListener("update",a),t.removeEventListener("updateActive",n)})),{currentView:i,views:s}}const qe=(0,g.C)("files","viewConfigs",{}),Ye=(0,a.nY)("viewconfig",(()=>{const e=(0,o.KR)({...qe});async function t(e,t,s){null!==(0,n.HW)()&&await I.Ay.put((0,T.Jv)("/apps/files/api/v1/views"),{value:s,view:e,key:t}),(0,U.Ic)("files:view-config:updated",{view:e,key:t,value:s})}return(0,U.B1)("files:view-config:updated",(t=>{let{view:s,key:i,value:n}=t;return function(t,s,i){t in e.value||(0,o.hZ)(e.value,t,{}),(0,o.hZ)(e.value[t],s,i)}(s,i,n)})),{viewConfigs:e,getConfig:function(t){return e.value[t]||{}},setSortingBy:function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";t(e,"sorting_mode",arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename"),t(e,"sorting_direction","asc")},toggleSortingDirection:function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";t(s,"sorting_direction","asc"===(e.value[s]||{sorting_direction:"asc"}).sorting_direction?"desc":"asc")},update:t}})),Ge=(0,o.pM)({name:"FilesNavigationItem",components:{Fragment:$e.F,NcAppNavigationItem:le.A,NcIconSvgWrapper:We.A},props:{parent:{type:Object,default:()=>({})},level:{type:Number,default:0},views:{type:Object,default:()=>({})}},setup(){const{currentView:e}=He();return{currentView:e,viewConfigStore:Ye()}},computed:{currentViews(){return this.level>=7?Object.values(this.views).reduce(((e,t)=>[...e,...t]),[]).filter((e=>e.params?.dir.startsWith(this.parent.params?.dir))):this.views[this.parent.id]??[]},style(){return 0===this.level||1===this.level||this.level>7?null:{"padding-left":"16px"}}},methods:{hasChildViews(e){return!(this.level>=7)&&this.views[e.id]?.length>0},useExactRouteMatching(e){return this.hasChildViews(e)},generateToNavigation(e){if(e.params){const{dir:t}=e.params;return{name:"filelist",params:{...e.params},query:{dir:t}}}return{name:"filelist",params:{view:e.id}}},isExpanded(e){return"boolean"==typeof this.viewConfigStore.getConfig(e.id)?.expanded?!0===this.viewConfigStore.getConfig(e.id).expanded:!0===e.expanded},async onOpen(e,t){const s=this.isExpanded(t);t.expanded=!s,this.viewConfigStore.update(t.id,"expanded",!s),e&&t.loadChildViews&&await t.loadChildViews(t)},filterView:(e,t)=>Object.fromEntries(Object.entries(e).filter((e=>{let[s,i]=e;return s!==t})))}}),Ke=(0,ae.A)(Ge,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",e._l(e.currentViews,(function(s){return t("NcAppNavigationItem",{key:s.id,staticClass:"files-navigation__item",style:e.style,attrs:{"allow-collapse":"",loading:s.loading,"data-cy-files-navigation-item":s.id,exact:e.useExactRouteMatching(s),icon:s.iconClass,name:s.name,open:e.isExpanded(s),pinned:s.sticky,to:e.generateToNavigation(s)},on:{"update:open":t=>e.onOpen(t,s)},scopedSlots:e._u([s.icon?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.icon}})]},proxy:!0}:null],null,!0)},[e._v(" "),s.loadChildViews&&!s.loaded?t("li",{staticStyle:{display:"none"}}):e._e(),e._v(" "),e.hasChildViews(s)?t("FilesNavigationItem",{attrs:{parent:s,level:e.level+1,views:e.filterView(e.views,e.parent.id)}}):e._e()],1)})),1)}),[],!1,null,null,null).exports;var Qe=i(59271);class Je extends m.L3{constructor(){super("files:filename",5),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"searchQuery","")}filter(e){const t=this.searchQuery.toLocaleLowerCase().split(" ").filter(Boolean);return e.filter((e=>{const s=e.displayname.toLocaleLowerCase();return t.every((e=>s.includes(e)))}))}reset(){this.updateQuery("")}updateQuery(e){if((e=(e||"").trim())!==this.searchQuery){this.searchQuery=e,this.filterUpdated();const t=[];""!==e&&t.push({text:e,onclick:()=>{this.updateQuery("")}}),this.updateChips(t),this.dispatchTypedEvent("update:query",new CustomEvent("update:query",{detail:e}))}}}function Xe(e){return"mount"in e}const Ze=(0,a.nY)("filters",(()=>{const e=(0,o.KR)({}),t=(0,o.KR)([]),s=(0,o.EW)((()=>Object.values(e.value).flat())),i=(0,o.EW)((()=>t.value.sort(((e,t)=>e.order-t.order)))),n=(0,o.EW)((()=>i.value.filter(Xe)));function a(e){e.addEventListener("update:chips",d),e.addEventListener("update:filter",l),t.value.push(e),j.debug("New file list filter registered",{id:e.id})}function r(e){const s=t.value.findIndex((t=>{let{id:s}=t;return s===e}));if(s>-1){const[i]=t.value.splice(s,1);i.removeEventListener("update:chips",d),i.removeEventListener("update:filter",l),j.debug("Files list filter unregistered",{id:e})}}function l(){(0,U.Ic)("files:filters:changed")}function d(t){const s=t.target.id;e.value={...e.value,[s]:[...t.detail]},j.debug("File list filter chips updated",{filter:s,chips:t.detail})}(0,U.B1)("files:navigation:changed",(function(){j.debug("Reset all file list filters - view changed");for(const e of t.value)void 0!==e.reset&&e.reset()})),(0,U.B1)("files:filter:added",a),(0,U.B1)("files:filter:removed",r);for(const e of(0,m.sR)())a(e);return{chips:e,filters:t,filtersWithUI:n,activeChips:s,sortedFilters:i,addFilter:a,removeFilter:r}})),et=Intl.Collator([(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"}),tt=(0,o.pM)({name:"Navigation",components:{IconCog:oe,FilesNavigationItem:Ke,NavigationQuota:Ue,NcAppNavigation:re.A,NcAppNavigationItem:le.A,NcAppNavigationList:de.A,NcAppNavigationSearch:ce.N,SettingsModal:Ve},setup(){const e=Ze(),t=Ye(),{currentView:s,views:i}=He(),{searchQuery:n}=function(){const e=(0,o.KR)(""),t=new Je;function s(t){"update:query"===t.type&&(e.value=t.detail,t.stopPropagation())}return(0,o.sV)((()=>{t.addEventListener("update:query",s),(0,m.cZ)(t)})),(0,o.hi)((()=>{t.removeEventListener("update:query",s),(0,m.Dw)(t.id)})),(0,Qe.o3)(e,(()=>{t.updateQuery(e.value)}),{throttle:800}),{searchQuery:e}}();return{currentView:s,searchQuery:n,t:u.Tl,views:i,filtersStore:e,viewConfigStore:t}},data:()=>({settingsOpened:!1}),computed:{currentViewId(){return this.$route?.params?.view||"files"},viewMap(){return this.views.reduce(((e,t)=>(e[t.parent]=[...e[t.parent]||[],t],e[t.parent].sort(((e,t)=>"number"==typeof e.order||"number"==typeof t.order?(e.order??0)-(t.order??0):et.compare(e.name,t.name))),e)),{})}},watch:{currentViewId(e,t){if(this.currentViewId!==this.currentView?.id){const s=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(s),j.debug(`Navigation changed from ${t} to ${e}`,{to:s})}}},created(){(0,U.B1)("files:folder-tree:initialized",this.loadExpandedViews),(0,U.B1)("files:folder-tree:expanded",this.loadExpandedViews)},beforeMount(){const e=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(e),j.debug("Navigation mounted. Showing requested view",{view:e})},methods:{async loadExpandedViews(){const e=Object.entries(this.viewConfigStore.viewConfigs).filter((e=>{let[,t]=e;return!0===t.expanded})).map((e=>{let[t]=e;return this.views.find((e=>e.id===t))})).filter(Boolean).filter((e=>e.loadChildViews&&!e.loaded));for(const t of e)await t.loadChildViews(t)},showView(e){window.OCA?.Files?.Sidebar?.close?.(),(0,m.bh)().setActive(e),(0,U.Ic)("files:navigation:changed",e)},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1}}});var st=i(80355),it={};it.styleTagTransform=Le(),it.setAttributes=_e(),it.insert=Ce().bind(null,"head"),it.domAPI=be(),it.insertStyleElement=Te(),we()(st.A,it),st.A&&st.A.locals&&st.A.locals;const nt=(0,ae.A)(tt,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppNavigation",{staticClass:"files-navigation",attrs:{"data-cy-files-navigation":"","aria-label":e.t("files","Files")},scopedSlots:e._u([{key:"search",fn:function(){return[t("NcAppNavigationSearch",{attrs:{label:e.t("files","Filter file names …")},model:{value:e.searchQuery,callback:function(t){e.searchQuery=t},expression:"searchQuery"}})]},proxy:!0},{key:"default",fn:function(){return[t("NcAppNavigationList",{staticClass:"files-navigation__list",attrs:{"aria-label":e.t("files","Views")}},[t("FilesNavigationItem",{attrs:{views:e.viewMap}})],1),e._v(" "),t("SettingsModal",{attrs:{open:e.settingsOpened,"data-cy-files-navigation-settings":""},on:{"update:open":function(t){e.settingsOpened=t},close:e.onSettingsClose}})]},proxy:!0},{key:"footer",fn:function(){return[t("ul",{staticClass:"app-navigation-entry__settings"},[t("NavigationQuota"),e._v(" "),t("NcAppNavigationItem",{attrs:{name:e.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.openSettings.apply(null,arguments)}}},[t("IconCog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])})}),[],!1,null,"084c464a",null).exports;var at=i(77905),ot=i(85748),rt=i(18195),lt=i(24764),dt=i(57505),ct=i(97012),mt=i(32190),gt=i(59892);const ut={name:"AccountPlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ft=(0,ae.A)(ut,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var pt=i(57578);const ht={name:"ReloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vt=(0,ae.A)(ht,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon reload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var wt=i(36600);const At={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bt=(0,ae.A)(At,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon format-list-bulleted-square-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,yt={name:"ViewGridIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ct=(0,ae.A)(yt,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon view-grid-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;function kt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const s=e.filter((e=>e.type===m.pt.File)).length,i=e.filter((e=>e.type===m.pt.Folder)).length,n=[];if(s>0||0===i){const e=(0,u.n)("files","%n file","%n files",s);n.push(e)}if(i>0){const e=(0,u.n)("files","%n folder","%n folders",i);n.push(e)}if(t>0){const e=(0,u.n)("files","%n hidden","%n hidden",t);n.push(e)}return n.join(" · ")}function _t(){const e=(0,o.KR)((0,m.By)());return(0,o.EW)((()=>[...e.value].sort(((e,t)=>e.order-t.order))))}let xt;const Tt=(0,o.KR)(0),St=new ResizeObserver((e=>{e[0].contentBoxSize?Tt.value=e[0].contentBoxSize[0].inlineSize:Tt.value=e[0].contentRect.width}));function Lt(){const e=document.querySelector("#app-content-vue")??document.body;e!==xt&&(xt&&St.unobserve(xt),St.observe(e),xt=e)}function Nt(){return(0,o.sV)(Lt),Lt(),(0,o.tB)(Tt)}var Ft=i(77815);const Ut=(0,Ft.KU)(),Et=async e=>{const t=(0,Ft.aN)(),s=await Ut.stat(`${(0,Ft.ei)()}${e}`,{details:!0,data:t});return(0,Ft.pO)(s.data)},It=function(){const e=Pt(...arguments),t=(0,a.nY)("paths",{state:()=>({paths:{}}),getters:{getPath:e=>(t,s)=>{if(e.paths[t])return e.paths[t][s]}},actions:{addPath(e){this.paths[e.service]||o.Ay.set(this.paths,e.service,{}),o.Ay.set(this.paths[e.service],e.path,e.source)},deletePath(e,t){this.paths[e]&&o.Ay.delete(this.paths[e],t)},onCreatedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.fileid?(e.type===m.pt.Folder&&this.addPath({service:t,path:e.path,source:e.source}),this.addNodeToParentChildren(e)):j.error("Node has no fileid",{node:e})},onDeletedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.type===m.pt.Folder&&this.deletePath(t,e.path),this.deleteNodeFromParentChildren(e)},onMovedNode(e){let{node:t,oldSource:s}=e;const i=(0,m.bh)()?.active?.id||"files";if(t.type===m.pt.Folder){const e=Object.entries(this.paths[i]).find((e=>{let[,t]=e;return t===s}));e?.[0]&&this.deletePath(i,e[0]),this.addPath({service:i,path:t.path,source:t.source})}const n=new m.ZH({source:s,owner:t.owner,mime:t.mime});this.deleteNodeFromParentChildren(n),this.addNodeToParentChildren(t)},deleteNodeFromParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",i=(0,h.pD)(t.source),n="/"===t.dirname?e.getRoot(s):e.getNode(i);if(n){const e=new Set(n._children??[]);return e.delete(t.source),o.Ay.set(n,"_children",[...e.values()]),void j.debug("Children updated",{parent:n,node:t,children:n._children})}j.debug("Parent path does not exists, skipping children update",{node:t})},addNodeToParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",i=(0,h.pD)(t.source),n="/"===t.dirname?e.getRoot(s):e.getNode(i);if(n){const e=new Set(n._children??[]);return e.add(t.source),o.Ay.set(n,"_children",[...e.values()]),void j.debug("Children updated",{parent:n,node:t,children:n._children})}j.debug("Parent path does not exists, skipping children update",{node:t})}}})(...arguments);return t._initialized||((0,U.B1)("files:node:created",t.onCreatedNode),(0,U.B1)("files:node:deleted",t.onDeletedNode),(0,U.B1)("files:node:moved",t.onMovedNode),t._initialized=!0),t},Pt=function(){const e=(0,a.nY)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:e=>t=>e.files[t],getNodes:e=>t=>t.map((t=>e.files[t])).filter(Boolean),getNodesById:e=>t=>Object.values(e.files).filter((e=>e.fileid===t)),getRoot:e=>t=>e.roots[t]},actions:{getNodesByPath(e,t){const s=It();let i;if(t&&"/"!==t){const n=s.getPath(e,t);n&&(i=this.getNode(n))}else i=this.getRoot(e);return(i?._children??[]).map((e=>this.getNode(e))).filter(Boolean)},updateNodes(e){const t=e.reduce(((e,t)=>t.fileid?(e[t.source]=t,e):(j.error("Trying to update/set a node without fileid",{node:t}),e)),{});o.Ay.set(this,"files",{...this.files,...t})},deleteNodes(e){e.forEach((e=>{e.source&&o.Ay.delete(this.files,e.source)}))},setRoot(e){let{service:t,root:s}=e;o.Ay.set(this.roots,t,s)},onDeletedNode(e){this.deleteNodes([e])},onCreatedNode(e){this.updateNodes([e])},onMovedNode(e){let{node:t,oldSource:s}=e;t.fileid?(o.Ay.delete(this.files,s),this.updateNodes([t])):j.error("Trying to update/set a node without fileid",{node:t})},async onUpdatedNode(e){if(!e.fileid)return void j.error("Trying to update/set a node without fileid",{node:e});const t=this.getNodesById(e.fileid);if(t.length>1)return await Promise.all(t.map((e=>Et(e.path)))).then(this.updateNodes),void j.debug(t.length+" nodes updated in store",{fileid:e.fileid});e.source!==t[0].source?Et(e.path).then((e=>this.updateNodes([e]))):this.updateNodes([e])},onAddFavorite(e){const t=this.getNode(e.source);t&&o.Ay.set(t.attributes,"favorite",1)},onRemoveFavorite(e){const t=this.getNode(e.source);t&&o.Ay.set(t.attributes,"favorite",0)}}})(...arguments);return e._initialized||((0,U.B1)("files:node:created",e.onCreatedNode),(0,U.B1)("files:node:deleted",e.onDeletedNode),(0,U.B1)("files:node:updated",e.onUpdatedNode),(0,U.B1)("files:node:moved",e.onMovedNode),(0,U.B1)("files:favorites:added",e.onAddFavorite),(0,U.B1)("files:favorites:removed",e.onRemoveFavorite),e._initialized=!0),e};function zt(){const e=function(){var e=(0,o.nI)().proxy.$root;if(!e._$route){var t=(0,o.uY)(!0).run((function(){return(0,o.Gc)(Object.assign({},e.$router.currentRoute))}));e._$route=t,e.$router.afterEach((function(e){Object.assign(t,e)}))}return e._$route}();return{directory:(0,o.EW)((()=>String(e.query.dir||"/").replace(/^(.+)\/$/,"$1"))),fileId:(0,o.EW)((()=>{const t=Number.parseInt(e.params.fileid??"0")||null;return Number.isNaN(t)?null:t})),openFile:(0,o.EW)((()=>"openfile"in e.query&&("string"!=typeof e.query.openfile||"false"!==e.query.openfile.toLocaleLowerCase()))),openDetails:(0,o.EW)((()=>"opendetails"in e.query&&("string"!=typeof e.query.opendetails||"false"!==e.query.opendetails.toLocaleLowerCase())))}}const Bt=(0,a.nY)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o.Ay.set(this,"selected",[...new Set(e)])},setLastIndex(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;o.Ay.set(this,"lastSelection",e?this.selected:[]),o.Ay.set(this,"lastSelectedIndex",e)},reset(){o.Ay.set(this,"selected",[]),o.Ay.set(this,"lastSelection",[]),o.Ay.set(this,"lastSelectedIndex",null)}}});let Dt;const Rt=function(){return Dt=(0,ot.g)(),(0,a.nY)("uploader",{state:()=>({queue:Dt.queue})})(...arguments)};var Ot=i(11820),jt=i(40603);class Mt extends File{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];super([],e,{type:"httpd/unix-directory"}),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"_contents",void 0),this._contents=t}set contents(e){this._contents=e}get contents(){return this._contents}get size(){return this._computeDirectorySize(this)}get lastModified(){return 0===this._contents.length?Date.now():this._computeDirectoryMtime(this)}_computeDirectoryMtime(e){return e.contents.reduce(((e,t)=>t.lastModified>e?t.lastModified:e),0)}_computeDirectorySize(e){return e.contents.reduce(((e,t)=>e+t.size),0)}}const Vt=async e=>{if(e.isFile)return new Promise(((t,s)=>{e.file(t,s)}));j.debug("Handling recursive file tree",{entry:e.name});const t=e,s=await $t(t),i=(await Promise.all(s.map(Vt))).flat();return new Mt(t.name,i)},$t=e=>{const t=e.createReader();return new Promise(((e,s)=>{const i=[],n=()=>{t.readEntries((t=>{t.length?(i.push(...t),n()):e(i)}),(e=>{s(e)}))};n()}))},Wt=async e=>{const t=(0,m.H4)();if(!await t.exists(e)){j.debug("Directory does not exist, creating it",{absolutePath:e}),await t.createDirectory(e,{recursive:!0});const s=await t.stat(e,{details:!0,data:(0,m.VL)()});(0,U.Ic)("files:node:created",(0,m.Al)(s.data))}},Ht=async(e,t,s)=>{try{const i=e.filter((e=>s.find((t=>t.basename===(e instanceof File?e.name:e.basename))))).filter(Boolean),n=e.filter((e=>!i.includes(e))),{selected:a,renamed:o}=await(0,ot.o)(t.path,i,s);return j.debug("Conflict resolution",{uploads:n,selected:a,renamed:o}),0===a.length&&0===o.length?((0,c.cf)((0,u.Tl)("files","Conflicts resolution skipped")),j.info("User skipped the conflict resolution"),[]):[...n,...a,...o]}catch(e){console.error(e),(0,c.Qg)((0,u.Tl)("files","Upload cancelled")),j.error("User cancelled the upload")}return[]};var qt=i(36882),Yt=i(39285);const Gt=(0,g.C)("files_sharing","sharePermissions",m.aX.NONE);let Kt;var Qt;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(Qt||(Qt={}));const Jt=e=>{const t=e.reduce(((e,t)=>Math.min(e,t.permissions)),m.aX.ALL);return Boolean(t&m.aX.DELETE)},Xt=e=>!!(e=>e.every((e=>!JSON.parse(e.attributes?.["share-attributes"]??"[]").some((e=>"permissions"===e.scope&&!1===e.value&&"download"===e.key)))))(e)&&!e.some((e=>e.permissions===m.aX.NONE))&&(!(0,$.f)()||Boolean(Gt&m.aX.CREATE));var Zt=i(36117);const es=e=>(0,m.Al)(e),ts=e=>Jt(e)?Xt(e)?Qt.MOVE_OR_COPY:Qt.MOVE:Qt.COPY,ss=async function(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==m.pt.Folder)throw new Error((0,u.Tl)("files","Destination is not a folder"));if(s===Qt.MOVE&&e.dirname===t.path)throw new Error((0,u.Tl)("files","This file/folder is already in that directory"));if(`${t.path}/`.startsWith(`${e.path}/`))throw new Error((0,u.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));o.Ay.set(e,"status",m.zI.LOADING);const n=function(e,t,s){const i=e===Qt.MOVE?(0,u.Tl)("files",'Moving "{source}" to "{destination}" …',{source:t,destination:s}):(0,u.Tl)("files",'Copying "{source}" to "{destination}" …',{source:t,destination:s});let n;return n=(0,c.cf)(`<span class="icon icon-loading-small toast-loading-icon"></span> ${i}`,{isHTML:!0,timeout:c.DH,onRemove:()=>{n?.hideToast(),n=void 0}}),()=>n&&n.hideToast()}(s,e.basename,t.path),a=(Kt||(Kt=new f.A({concurrency:5})),Kt);return await a.add((async()=>{const a=e=>1===e?(0,u.Tl)("files","(copy)"):(0,u.Tl)("files","(copy %n)",void 0,e);try{const n=(0,m.H4)(),o=(0,d.join)(m.lJ,e.path),r=(0,d.join)(m.lJ,t.path);if(s===Qt.COPY){let s=e.basename;if(!i){const t=await n.getDirectoryContents(r);s=(0,m.E6)(e.basename,t.map((e=>e.basename)),{suffix:a,ignoreFileExtension:e.type===m.pt.Folder})}if(await n.copyFile(o,(0,d.join)(r,s)),e.dirname===t.path){const{data:e}=await n.stat((0,d.join)(r,s),{details:!0,data:(0,m.VL)()});(0,U.Ic)("files:node:created",(0,m.Al)(e))}}else{if(!i){const s=await function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";e=(0,d.join)(m.lJ,e);const t=new AbortController,s=(0,m.VL)();return new Zt.CancelablePromise((async(i,n,a)=>{a((()=>t.abort()));try{const n=await Ut.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),a=n.data[0],o=n.data.slice(1);if(a.filename!==e&&`${a.filename}/`!==e)throw j.debug(`Exepected "${e}" but got filename "${a.filename}" instead.`),new Error("Root node does not match requested path");i({folder:es(a),contents:o.map((e=>{try{return es(e)}catch(t){return j.error(`Invalid node detected '${e.basename}'`,{error:t}),null}})).filter(Boolean)})}catch(e){n(e)}}))}(t.path);if((0,ot.h)([e],s.contents))try{const{selected:i,renamed:n}=await(0,ot.o)(t.path,[e],s.contents);if(!i.length&&!n.length)return}catch(e){return void(0,c.Qg)((0,u.Tl)("files","Move cancelled"))}}try{await n.moveFile(o,(0,d.join)(r,e.basename))}catch(e){const t=new DOMParser,s=await(e.response?.text()),i=t.parseFromString(s??"","text/xml").querySelector("message")?.textContent;throw i&&(0,c.Qg)(i),e}(0,U.Ic)("files:node:deleted",e)}}catch(e){if((0,I.F0)(e)){if(412===e.response?.status)throw new Error((0,u.Tl)("files","A file or folder with that name already exists in this folder"));if(423===e.response?.status)throw new Error((0,u.Tl)("files","The files are locked"));if(404===e.response?.status)throw new Error((0,u.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw j.debug(e),new Error}finally{o.Ay.set(e,"status",""),n()}}))};async function is(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const{resolve:i,reject:n,promise:a}=Promise.withResolvers(),o=s.map((e=>e.fileid)).filter(Boolean);return(0,c.a1)((0,u.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!o.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t).setButtonFactory(((t,n)=>{const a=[],o=(0,d.basename)(n),r=s.map((e=>e.dirname)),l=s.map((e=>e.path));return e!==Qt.COPY&&e!==Qt.MOVE_OR_COPY||a.push({label:o?(0,u.Tl)("files","Copy to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,u.Tl)("files","Copy"),type:"primary",icon:qt,disabled:t.some((e=>!(e.permissions&m.aX.CREATE))),async callback(e){i({destination:e[0],action:Qt.COPY})}}),r.includes(n)||l.includes(n)||t.some((e=>!(e.permissions&m.aX.CREATE)))||e!==Qt.MOVE&&e!==Qt.MOVE_OR_COPY||a.push({label:o?(0,u.Tl)("files","Move to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,u.Tl)("files","Move"),type:e===Qt.MOVE?"primary":"secondary",icon:Yt,async callback(e){i({destination:e[0],action:Qt.MOVE})}}),a})).build().pick().catch((e=>{j.debug(e),e instanceof c.vT?i(!1):n(new Error((0,u.Tl)("files","Move or copy operation failed")))})),a}new m.hY({id:"move-copy",displayName(e){switch(ts(e)){case Qt.MOVE:return(0,u.Tl)("files","Move");case Qt.COPY:return(0,u.Tl)("files","Copy");case Qt.MOVE_OR_COPY:return(0,u.Tl)("files","Move or copy")}},iconSvgInline:()=>Yt,enabled:(e,t)=>"public-file-share"!==t.id&&!!e.every((e=>e.root?.startsWith("/files/")))&&e.length>0&&(Jt(e)||Xt(e)),async exec(e,t,s){const i=ts([e]);let n;try{n=await is(i,s,[e])}catch(e){return j.error(e),!1}if(!1===n)return(0,c.cf)((0,u.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e.displayname})),null;try{return await ss(e,n.destination,n.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,c.Qg)(e.message),null)}},async execBatch(e,t,s){const i=ts(e),n=await is(i,s,e);if(!1===n)return(0,c.cf)(1===e.length?(0,u.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e[0].displayname}):(0,u.Tl)("files","Cancelled move or copy operation")),e.map((()=>null));const a=e.map((async e=>{try{return await ss(e,n.destination,n.action),!0}catch(t){return j.error(`Failed to ${n.action} node`,{node:e,error:t}),!1}}));return await Promise.all(a)},order:15});const ns=async e=>{const t=e.filter((e=>"file"===e.kind||(j.debug("Skipping dropped item",{kind:e.kind,type:e.type}),!1))).map((e=>e?.getAsEntry?.()??e?.webkitGetAsEntry?.()??e));let s=!1;const i=new Mt("root");for(const e of t)if(e instanceof DataTransferItem){j.warn("Could not get FilesystemEntry of item, falling back to file");const t=e.getAsFile();if(null===t){j.warn("Could not process DataTransferItem",{type:e.type,kind:e.kind}),(0,c.Qg)((0,u.Tl)("files","One of the dropped files could not be processed"));continue}if("httpd/unix-directory"===t.type||!t.type){s||(j.warn("Browser does not support Filesystem API. Directories will not be uploaded"),(0,c.I9)((0,u.Tl)("files","Your browser does not support the Filesystem API. Directories will not be uploaded")),s=!0);continue}i.contents.push(t)}else try{i.contents.push(await Vt(e))}catch(e){j.error("Error while traversing file tree",{error:e})}return i},as=async(e,t,s)=>{const i=(0,ot.g)();if(await(0,ot.h)(e.contents,s)&&(e.contents=await Ht(e.contents,t,s)),0===e.contents.length)return j.info("No files to upload",{root:e}),(0,c.cf)((0,u.Tl)("files","No files to upload")),[];j.debug(`Uploading files to ${t.path}`,{root:e,contents:e.contents});const n=[],a=async(e,s)=>{for(const o of e.contents){const e=(0,d.join)(s,o.name);if(o instanceof Mt){const s=(0,h.HS)(m.lJ,t.path,e);try{console.debug("Processing directory",{relativePath:e}),await Wt(s),await a(o,e)}catch(e){(0,c.Qg)((0,u.Tl)("files","Unable to create the directory {directory}",{directory:o.name})),j.error("",{error:e,absolutePath:s,directory:o})}}else j.debug("Uploading file to "+(0,d.join)(t.path,e),{file:o}),n.push(i.upload(e,o,t.source))}};i.pause(),await a(e,"/"),i.start();const o=(await Promise.allSettled(n)).filter((e=>"rejected"===e.status));return o.length>0?(j.error("Error while uploading files",{errors:o}),(0,c.Qg)((0,u.Tl)("files","Some files could not be uploaded")),[]):(j.debug("Files uploaded successfully"),(0,c.Te)((0,u.Tl)("files","Files uploaded successfully")),Promise.all(n))},os=async function(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const n=[];if(await(0,ot.h)(e,s)&&(e=await Ht(e,t,s)),0===e.length)return j.info("No files to process",{nodes:e}),void(0,c.cf)((0,u.Tl)("files","No files to process"));for(const s of e)o.Ay.set(s,"status",m.zI.LOADING),n.push(ss(s,t,i?Qt.COPY:Qt.MOVE,!0));const a=await Promise.allSettled(n);e.forEach((e=>o.Ay.set(e,"status",void 0)));const r=a.filter((e=>"rejected"===e.status));if(r.length>0)return j.error("Error while copying or moving files",{errors:r}),void(0,c.Qg)(i?(0,u.Tl)("files","Some files could not be copied"):(0,u.Tl)("files","Some files could not be moved"));j.debug("Files copy/move successful"),(0,c.Te)(i?(0,u.Tl)("files","Files copied successfully"):(0,u.Tl)("files","Files moved successfully"))},rs=(0,a.nY)("dragging",{state:()=>({dragging:[]}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o.Ay.set(this,"dragging",e)},reset(){o.Ay.set(this,"dragging",[])}}}),ls=(0,o.pM)({name:"BreadCrumbs",components:{NcBreadcrumbs:jt.A,NcBreadcrumb:Ot.A,NcIconSvgWrapper:We.A},props:{path:{type:String,default:"/"}},setup(){const e=rs(),t=Pt(),s=It(),i=Bt(),n=Rt(),a=Nt(),{currentView:o,views:r}=He();return{draggingStore:e,filesStore:t,pathsStore:s,selectionStore:i,uploaderStore:n,currentView:o,fileListWidth:a,views:r}},computed:{dirs(){var e;return["/",...this.path.split("/").filter(Boolean).map((e="/",t=>e+=`${t}/`)).map((e=>e.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map(((e,t)=>{const s=this.getFileSourceFromPath(e),i=s?this.getNodeFromSource(s):void 0;return{dir:e,exact:!0,name:this.getDirDisplayName(e),to:this.getTo(e,i),disableDrop:t===this.dirs.length-1}}))},isUploadInProgress(){return 0!==this.uploaderStore.queue.length},wrapUploadProgressBar(){return this.isUploadInProgress&&this.fileListWidth<512},viewIcon(){return this.currentView?.icon??'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-home" viewBox="0 0 24 24"><path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" /></svg>'},selectedFiles(){return this.selectionStore.selected},draggingFiles(){return this.draggingStore.dragging}},methods:{getNodeFromSource(e){return this.filesStore.getNode(e)},getFileSourceFromPath(e){return(this.currentView&&this.pathsStore.getPath(this.currentView.id,e))??null},getDirDisplayName(e){if("/"===e)return this.currentView?.name||(0,u.Tl)("files","Home");const t=this.getFileSourceFromPath(e),s=t?this.getNodeFromSource(t):void 0;return s?.displayname||(0,d.basename)(e)},getTo(e,t){if("/"===e)return{...this.$route,params:{view:this.currentView?.id},query:{}};if(void 0===t){const t=this.views.find((t=>t.params?.dir===e));return{...this.$route,params:{fileid:t?.params?.fileid??""},query:{dir:e}}}return{...this.$route,params:{fileid:String(t.fileid)},query:{dir:t.path}}},onClick(e){e?.query?.dir===this.$route.query.dir&&this.$emit("reload")},onDragOver(e,t){e.dataTransfer&&(t!==this.dirs[this.dirs.length-1]?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none")},async onDrop(e,t){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault();const s=this.draggingFiles,i=[...e.dataTransfer?.items||[]],n=await ns(i),a=await(this.currentView?.getContents(t)),o=a?.folder;if(!o)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));const r=!!(o.permissions&m.aX.CREATE),l=e.ctrlKey;if(!r||0!==e.button)return;if(j.debug("Dropped",{event:e,folder:o,selection:s,fileTree:n}),n.contents.length>0)return void await as(n,o,a.contents);const d=s.map((e=>this.filesStore.getNode(e)));await os(d,o,a.contents,l),s.some((e=>this.selectedFiles.includes(e)))&&(j.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},titleForSection(e,t){return t?.to?.query?.dir===this.$route.query.dir?(0,u.Tl)("files","Reload current directory"):0===e?(0,u.Tl)("files",'Go to the "{dir}" directory',t):null},ariaForSection(e){return e?.to?.query?.dir===this.$route.query.dir?(0,u.Tl)("files","Reload current directory"):null},t:u.Tl}});var ds=i(31643),cs={};cs.styleTagTransform=Le(),cs.setAttributes=_e(),cs.insert=Ce().bind(null,"head"),cs.domAPI=be(),cs.insertStyleElement=Te(),we()(ds.A,cs),ds.A&&ds.A.locals&&ds.A.locals;const ms=(0,ae.A)(ls,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcBreadcrumbs",{staticClass:"files-list__breadcrumbs",class:{"files-list__breadcrumbs--with-progress":e.wrapUploadProgressBar},attrs:{"data-cy-files-content-breadcrumbs":"","aria-label":e.t("files","Current directory path")},scopedSlots:e._u([{key:"actions",fn:function(){return[e._t("actions")]},proxy:!0}],null,!0)},e._l(e.sections,(function(s,i){return t("NcBreadcrumb",e._b({key:s.dir,attrs:{dir:"auto",to:s.to,"force-icon-text":0===i&&e.fileListWidth>=486,title:e.titleForSection(i,s),"aria-description":e.ariaForSection(s)},on:{drop:function(t){return e.onDrop(t,s.dir)}},nativeOn:{click:function(t){return e.onClick(s.to)},dragover:function(t){return e.onDragOver(t,s.dir)}},scopedSlots:e._u([0===i?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{size:20,svg:e.viewIcon}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",s,!1))})),1)}),[],!1,null,"7b525302",null).exports;var gs=i(17334),us=i.n(gs);const fs={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ps=(0,ae.A)(fs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tray-arrow-down-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,hs=(0,o.pM)({name:"DragAndDropNotice",components:{TrayArrowDownIcon:ps},props:{currentFolder:{type:Object,required:!0}},setup(){const{currentView:e}=He();return{currentView:e}},data:()=>({dragover:!1}),computed:{canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},cantUploadLabel(){return this.isQuotaExceeded?this.t("files","Your have used your space quota and cannot upload files anymore"):this.canUpload?null:this.t("files","You do not have permission to upload or create files here.")},resetDragOver(){return us()((()=>{this.dragover=!1}),3e3)}},mounted(){const e=window.document.getElementById("app-content-vue");e.addEventListener("dragover",this.onDragOver),e.addEventListener("dragleave",this.onDragLeave),e.addEventListener("drop",this.onContentDrop)},beforeDestroy(){const e=window.document.getElementById("app-content-vue");e.removeEventListener("dragover",this.onDragOver),e.removeEventListener("dragleave",this.onDragLeave),e.removeEventListener("drop",this.onContentDrop)},methods:{onDragOver(e){e.preventDefault();const t=e.dataTransfer?.types.includes("Files");t&&(this.dragover=!0,this.resetDragOver())},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget??e.target)||this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},onContentDrop(e){j.debug("Drag and drop cancelled, dropped on empty space",{event:e}),e.preventDefault(),this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},async onDrop(e){if(this.cantUploadLabel)return void(0,c.Qg)(this.cantUploadLabel);if(this.$el.querySelector("tbody")?.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t=[...e.dataTransfer?.items||[]],s=await ns(t),i=await(this.currentView?.getContents(this.currentFolder.path)),n=i?.folder;if(!n)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));if(e.button)return;j.debug("Dropped",{event:e,folder:n,fileTree:s});const a=(await as(s,n,i.contents)).findLast((e=>e.status!==ot.S.FAILED&&!e.file.webkitRelativePath.includes("/")&&e.response?.headers?.["oc-fileid"]&&2===e.source.replace(n.source,"").split("/").length));if(void 0!==a){j.debug("Scrolling to last upload in current folder",{lastUpload:a});const e={path:this.$route.path,params:{...this.$route.params,fileid:String(a.response.headers["oc-fileid"])},query:{...this.$route.query}};delete e.query.openfile,this.$router.push(e)}this.dragover=!1,this.resetDragOver.clear()},t:u.Tl}});var vs=i(63569),ws={};ws.styleTagTransform=Le(),ws.setAttributes=_e(),ws.insert=Ce().bind(null,"head"),ws.domAPI=be(),ws.insertStyleElement=Te(),we()(vs.A,ws),vs.A&&vs.A.locals&&vs.A.locals;const As=(0,ae.A)(hs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{directives:[{name:"show",rawName:"v-show",value:e.dragover,expression:"dragover"}],staticClass:"files-list__drag-drop-notice",attrs:{"data-cy-files-drag-drop-area":""},on:{drop:e.onDrop}},[t("div",{staticClass:"files-list__drag-drop-notice-wrapper"},[e.canUpload&&!e.isQuotaExceeded?[t("TrayArrowDownIcon",{attrs:{size:48}}),e._v(" "),t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.t("files","Drag and drop files here to upload"))+"\n\t\t\t")])]:[t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.cantUploadLabel)+"\n\t\t\t")])]],2)])}),[],!1,null,"6efab70c",null).exports,bs={name:"FilesListHeader",props:{header:{type:Object,required:!0},currentFolder:{type:Object,required:!0},currentView:{type:Object,required:!0}},computed:{enabled(){return this.header.enabled?.(this.currentFolder,this.currentView)??!0}},watch:{enabled(e){e&&this.header.updated(this.currentFolder,this.currentView)},currentFolder(){this.header.updated(this.currentFolder,this.currentView)}},mounted(){console.debug("Mounted",this.header.id),this.header.render(this.$refs.mount,this.currentFolder,this.currentView)}},ys=(0,ae.A)(bs,(function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.enabled,expression:"enabled"}],class:`files-list__header-${e.header.id}`},[t("span",{ref:"mount"})])}),[],!1,null,null,null).exports;var Cs=i(4604);const ks=(0,a.nY)("actionsmenu",{state:()=>({opened:null})});var _s=i(98469);const xs=(0,a.nY)("renaming",(()=>{const e=(0,o.KR)(),t=(0,o.KR)(""),s=(0,o.KR)(!1);function n(){t.value="",e.value=void 0}return(0,U.B1)("files:node:rename",(s=>{e.value=s,t.value=s.basename})),{$reset:n,newNodeName:t,rename:async function(){if(void 0===e.value)throw new Error("No node is currently being renamed");if(s.value)return!1;s.value=!0;let a=e.value;o.Ay.set(a,"status",m.zI.LOADING);const r=(0,se.O)();let l=t.value.trim();const c=a.basename,g=(0,d.extname)(c),f=(0,d.extname)(l);a.type===m.pt.File&&g!==f&&r.userConfig.show_dialog_file_extension&&!await async function(e,t){const{promise:s,resolve:n}=Promise.withResolvers();return(0,_s.S)((0,o.$V)((()=>Promise.all([i.e(4208),i.e(7807)]).then(i.bind(i,77807)))),{oldExtension:e,newExtension:t},(e=>n(Boolean(e)))),await s}(g,f)&&(l=(0,d.basename)(l,f)+g);const p=a.encodedSource;try{return c!==l&&(a.rename(l),j.debug("Moving file to",{destination:a.encodedSource,oldEncodedSource:p}),await(0,I.Ay)({method:"MOVE",url:p,headers:{Destination:a.encodedSource,Overwrite:"F"}}),g!==f&&(a=await Et(a.path)),(0,U.Ic)("files:node:updated",a),(0,U.Ic)("files:node:renamed",a),(0,U.Ic)("files:node:moved",{node:a,oldSource:`${(0,d.dirname)(a.source)}/${c}`}),e.value===a&&n(),!0)}catch(t){if(j.error("Error while renaming file",{error:t}),a.rename(c),(0,I.F0)(t)){if(404===t?.response?.status)throw new Error((0,u.t)("files",'Could not rename "{oldName}", it does not exist any more',{oldName:c}));if(412===t?.response?.status)throw new Error((0,u.t)("files",'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.',{newName:l,dir:(0,d.basename)(e.value.dirname)}))}throw new Error((0,u.t)("files",'Could not rename "{oldName}"',{oldName:c}))}finally{o.Ay.set(a,"status",void 0),s.value=!1}},renamingNode:e}})),Ts={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},watch:{source(){this.updateRootElement()},currentView(){this.updateRootElement()}},mounted(){this.updateRootElement()},methods:{async updateRootElement(){const e=await this.render(this.source,this.currentView);e?this.$el.replaceChildren(e):this.$el.replaceChildren()}}},Ss=(0,ae.A)(Ts,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports,Ls={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ns=(0,ae.A)(Ls,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Fs=i(15502);const Us=(0,o.pM)({data:()=>({openedSubmenu:null}),computed:{enabledSubmenuActions(){return this.enabledFileActions.reduce(((e,t)=>(void 0!==t.parent&&(e[t.parent]||(e[t.parent]=[]),e[t.parent].push(t)),e)),{})}},methods:{isValidMenu(e){return this.enabledSubmenuActions[e.id]?.length>0},async onBackToMenuClick(e){e&&(this.openedSubmenu=null,await this.$nextTick(),this.$nextTick((()=>{const t=this.$refs[`action-batch-${e.id}`]?.[0]||this.$refs[`action-${e.id}`]?.[0];t&&t.$el.querySelector("button")?.focus()})))}}}),Es=(0,o.pM)({name:"FileEntryActions",components:{ArrowLeftIcon:Ns,CustomElementRender:Ss,NcActionButton:dt.A,NcActions:lt.A,NcActionSeparator:Fs.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A},mixins:[Us],props:{opened:{type:Boolean,default:!1},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t}=zt(),s=ee(),i=Nt();return{activeStore:s,currentDir:t,currentView:e,enabledFileActions:(0,o.WQ)("enabledFileActions",[]),filesListWidth:i,t:u.t}},computed:{isActive(){return this.activeStore?.activeNode?.source===this.source.source},isLoading(){return this.source.status===m.zI.LOADING},enabledInlineActions(){return this.filesListWidth<768||this.gridMode?[]:this.enabledFileActions.filter((e=>{try{return e?.inline?.(this.source,this.currentView)}catch(t){return j.error("Error while checking if action is inline",{action:e,error:t}),!1}}))},enabledRenderActions(){return this.gridMode?[]:this.enabledFileActions.filter((e=>"function"==typeof e.renderInline))},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=[...this.enabledInlineActions,...this.enabledFileActions.filter((e=>e.default!==m.m9.HIDDEN&&"function"!=typeof e.renderInline))].filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>!e.parent)).map((e=>e.id));return e.filter((e=>!(e.parent&&t.includes(e.parent))))},openedMenu:{get(){return this.opened},set(e){this.$emit("update:opened",e)}},getBoundariesElement:()=>document.querySelector(".app-content > .files-list")},watch:{openedMenu(){this.openedSubmenu=null}},created(){(0,l.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),(0,l.C)("a",this.onKeyDown,{stop:!0,prevent:!0})},methods:{actionDisplayName(e){try{if((this.gridMode||this.filesListWidth<768&&e.inline)&&"function"==typeof e.title){const t=e.title([this.source],this.currentView);if(t)return t}return e.displayName([this.source],this.currentView)}catch(t){return j.error("Error while getting action display name",{action:e,error:t}),e.id}},isLoadingAction(e){return!!this.isActive&&this.activeStore?.activeAction?.id===e.id},async onActionClick(e){this.enabledSubmenuActions[e.id]?this.openedSubmenu=e:(this.activeStore.setActiveNode(this.source),await te(e))},onKeyDown(e){this.isActive&&("Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1),"a"!==e.key||this.openedMenu||(this.openedMenu=!0))},onMenuClose(){this.openedSubmenu=null},onMenuClosed(){this.openedMenu=!1}}}),Is=Es;var Ps=i(20040),zs={};zs.styleTagTransform=Le(),zs.setAttributes=_e(),zs.insert=Ce().bind(null,"head"),zs.domAPI=be(),zs.insertStyleElement=Te(),we()(Ps.A,zs),Ps.A&&Ps.A.locals&&Ps.A.locals;var Bs=i(19372),Ds={};Ds.styleTagTransform=Le(),Ds.setAttributes=_e(),Ds.insert=Ce().bind(null,"head"),Ds.domAPI=be(),Ds.insertStyleElement=Te(),we()(Bs.A,Ds),Bs.A&&Bs.A.locals&&Bs.A.locals;var Rs=(0,ae.A)(Is,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-actions",attrs:{"data-cy-files-list-row-actions":""}},[e._l(e.enabledRenderActions,(function(s){return t("CustomElementRender",{key:s.id,staticClass:"files-list__row-action--inline",class:"files-list__row-action-"+s.id,attrs:{"current-view":e.currentView,render:s.renderInline,source:e.source}})})),e._v(" "),t("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":e.getBoundariesElement,container:e.getBoundariesElement,"force-name":!0,type:"tertiary","force-menu":0===e.enabledInlineActions.length,inline:e.enabledInlineActions.length,open:e.openedMenu},on:{close:e.onMenuClose,closed:e.onMenuClosed}},[e._l(e.enabledMenuActions,(function(s,i){return t("NcActionButton",{key:s.id,ref:`action-${s.id}`,refInFor:!0,staticClass:"files-list__row-action",class:{[`files-list__row-action-${s.id}`]:!0,"files-list__row-action--inline":i<e.enabledInlineActions.length,"files-list__row-action--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-row-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.title?.([e.source],e.currentView),title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon"):t("NcIconSvgWrapper",{staticClass:"files-list__row-action-icon",attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-action-back",attrs:{"data-cy-files-list-row-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-action--submenu",class:`files-list__row-action-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-row-action":s.id,title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])}))]:e._e()],2)],2)}),[],!1,null,"7f0265e5",null);const Os=Rs.exports,js=(0,o.pM)({name:"FileEntryCheckbox",components:{NcCheckboxRadioSwitch:ze.A,NcLoadingIcon:gt.A},props:{fileid:{type:Number,required:!0},isLoading:{type:Boolean,default:!1},nodes:{type:Array,required:!0},source:{type:Object,required:!0}},setup(){const e=Bt(),t=function(){const e=(0,a.nY)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(e){e||(e=window.event),o.Ay.set(this,"altKey",!!e.altKey),o.Ay.set(this,"ctrlKey",!!e.ctrlKey),o.Ay.set(this,"metaKey",!!e.metaKey),o.Ay.set(this,"shiftKey",!!e.shiftKey)}}})(...arguments);return e._initialized||(window.addEventListener("keydown",e.onEvent),window.addEventListener("keyup",e.onEvent),window.addEventListener("mousemove",e.onEvent),e._initialized=!0),e}();return{activeStore:ee(),keyboardStore:t,selectionStore:e,t:u.Tl}},computed:{isActive(){return this.activeStore.activeNode?.source===this.source.source},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},index(){return this.nodes.findIndex((e=>e.source===this.source.source))},isFile(){return this.source.type===m.pt.File},ariaLabel(){return this.isFile?(0,u.Tl)("files",'Toggle selection for file "{displayName}"',{displayName:this.source.basename}):(0,u.Tl)("files",'Toggle selection for folder "{displayName}"',{displayName:this.source.basename})},loadingLabel(){return this.isFile?(0,u.Tl)("files","File is loading"):(0,u.Tl)("files","Folder is loading")}},created(){(0,l.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0}),(0,l.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0,shift:!0})},methods:{onSelectionChange(e){const t=this.index,s=this.selectionStore.lastSelectedIndex;if(this.keyboardStore?.shiftKey&&null!==s){const e=this.selectedFiles.includes(this.source.source),i=Math.min(t,s),n=Math.max(s,t),a=this.selectionStore.lastSelection,o=this.nodes.map((e=>e.source)).slice(i,n+1).filter(Boolean),r=[...a,...o].filter((t=>!e||t!==this.source.source));return j.debug("Shift key pressed, selecting all files in between",{start:i,end:n,filesToSelect:o,isAlreadySelected:e}),void this.selectionStore.set(r)}const i=e?[...this.selectedFiles,this.source.source]:this.selectedFiles.filter((e=>e!==this.source.source));j.debug("Updating selection",{selection:i}),this.selectionStore.set(i),this.selectionStore.setLastIndex(t)},resetSelection(){this.selectionStore.reset()},onToggleSelect(){this.isActive&&(j.debug("Toggling selection for file",{source:this.source}),this.onSelectionChange(!this.isSelected))}}}),Ms=(0,ae.A)(js,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[e.isLoading?t("NcLoadingIcon",{attrs:{name:e.loadingLabel}}):t("NcCheckboxRadioSwitch",{attrs:{"aria-label":e.ariaLabel,checked:e.isSelected,"data-cy-files-list-row-checkbox":""},on:{"update:checked":e.onSelectionChange}})],1)}),[],!1,null,null,null).exports;var Vs=i(55042);const $s={name:"FileMultipleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ws=(0,ae.A)($s,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-multiple-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Hs=i(25866);const qs=o.Ay.extend({name:"DragAndDropPreview",components:{FileMultipleIcon:Ws,FolderIcon:Hs.A},data:()=>({nodes:[]}),computed:{isSingleNode(){return 1===this.nodes.length},isSingleFolder(){return this.isSingleNode&&this.nodes[0].type===m.pt.Folder},name(){return this.size?`${this.summary} – ${this.size}`:this.summary},size(){const e=this.nodes.reduce(((e,t)=>e+t.size||0),0),t=parseInt(e,10)||0;return"number"!=typeof t||t<0?null:(0,m.v7)(t,!0)},summary(){if(this.isSingleNode){const e=this.nodes[0];return e.attributes?.displayname||e.basename}return kt(this.nodes)}},methods:{update(e){this.nodes=e,this.$refs.previewImg.replaceChildren(),e.slice(0,3).forEach((e=>{const t=document.querySelector(`[data-cy-files-list-row-fileid="${e.fileid}"] .files-list__row-icon img`);t&&this.$refs.previewImg.appendChild(t.parentNode.cloneNode(!0))})),this.$nextTick((()=>{this.$emit("loaded",this.$el)}))}}}),Ys=qs;var Gs=i(20768),Ks={};Ks.styleTagTransform=Le(),Ks.setAttributes=_e(),Ks.insert=Ce().bind(null,"head"),Ks.domAPI=be(),Ks.insertStyleElement=Te(),we()(Gs.A,Ks),Gs.A&&Gs.A.locals&&Gs.A.locals;const Qs=(0,ae.A)(Ys,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list-drag-image"},[t("span",{staticClass:"files-list-drag-image__icon"},[t("span",{ref:"previewImg"}),e._v(" "),e.isSingleFolder?t("FolderIcon"):t("FileMultipleIcon")],1),e._v(" "),t("span",{staticClass:"files-list-drag-image__name"},[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports,Js=o.Ay.extend(Qs);let Xs;o.Ay.directive("onClickOutside",Vs.z0);const Zs=(0,m.qK)(),ei=(0,o.pM)({props:{source:{type:[m.vd,m.ZH,m.bP],required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0},isMtimeAvailable:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},provide(){return{defaultFileAction:(0,o.EW)((()=>this.defaultFileAction)),enabledFileActions:(0,o.EW)((()=>this.enabledFileActions))}},data:()=>({dragover:!1,gridMode:!1}),computed:{fileid(){return this.source.fileid??0},uniqueId(){return function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0}(this.source.source)},isLoading(){return this.source.status===m.zI.LOADING},displayName(){return this.source.displayname||this.source.basename},basename(){return""===this.extension?this.displayName:this.displayName.slice(0,0-this.extension.length)},extension(){return this.source.type===m.pt.Folder?"":(0,d.extname)(this.displayName)},draggingFiles(){return this.draggingStore.dragging},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},isActive(){return String(this.fileid)===String(this.currentFileId)},isFailedSource(){return this.source.status===m.zI.FAILED},canDrag(){if(this.isRenaming)return!1;if(this.isFailedSource)return!1;const e=e=>!!(e?.permissions&m.aX.UPDATE);return this.selectedFiles.length>0?this.selectedFiles.map((e=>this.filesStore.getNode(e))).every(e):e(this.source)},canDrop(){return this.source.type===m.pt.Folder&&!this.isFailedSource&&!this.draggingFiles.includes(this.source.source)&&!!(this.source.permissions&m.aX.CREATE)},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId.toString()},set(e){!1===e&&this.actionsMenuStore.opened!==this.uniqueId.toString()||(this.actionsMenuStore.opened=e?this.uniqueId.toString():null)}},mtime(){return this.source.mtime&&!isNaN(this.source.mtime.getDate())?this.source.mtime:this.source.crtime&&!isNaN(this.source.crtime.getDate())?this.source.crtime:null},mtimeOpacity(){if(!this.mtime)return{};const e=26784e5,t=Date.now()-this.mtime.getTime();if(t<0)return{};const s=Math.max(0,e-t);return{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(100*s/e)}%, var(--color-text-maxcontrast))`}},enabledFileActions(){return this.source.status===m.zI.FAILED?[]:Zs.filter((e=>{if(!e.enabled)return!0;try{return e.enabled([this.source],this.currentView)}catch(t){return j.error("Error while checking action",{action:e,error:t}),!1}})).sort(((e,t)=>(e.order||0)-(t.order||0)))},defaultFileAction(){return this.enabledFileActions.find((e=>void 0!==e.default))}},watch:{source(e,t){e.source!==t.source&&this.resetState()},openedMenu(){if(null===this.actionsMenuStore.opened){j.debug("All actions menu closed, resetting right menu position...");const e=this.$el?.closest("main.app-content");null!==e&&(e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y"))}}},beforeDestroy(){this.resetState()},methods:{resetState(){this.$refs?.preview?.reset?.(),this.openedMenu=!1},onRightClick(e){if(this.openedMenu)return;if(this.isFailedSource)return;if(this.gridMode){const e=this.$el?.closest("main.app-content");e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y")}else{const t=this.$el?.closest("main.app-content"),s=t.getBoundingClientRect();j.debug("Setting actions menu position..."),t.style.setProperty("--mouse-pos-x",Math.max(0,e.clientX-s.left-200)+"px"),t.style.setProperty("--mouse-pos-y",Math.max(0,e.clientY-s.top)+"px")}const t=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&t?"global":this.uniqueId.toString(),e.preventDefault(),e.stopPropagation()},execDefaultAction(e){if(this.isRenaming)return;if(Boolean(2&e.button)||e.button>4)return;if(this.isFailedSource)return;const t=e.ctrlKey||e.metaKey||1===e.button;if(t||!this.defaultFileAction){if((0,$.f)()&&!function(e){if(!(e.permissions&m.aX.READ))return!1;if(!0===e.attributes["hide-download"]||"true"===e.attributes["hide-download"])return!1;if(e.attributes["share-attributes"]){const t=JSON.parse(e.attributes["share-attributes"]||"[]").find((e=>{let{scope:t,key:s}=e;return"permissions"===t&&"download"===s}));if(void 0!==t)return!0===t.value}return!0}(this.source))return;const s=(0,$.f)()?this.source.encodedSource:(0,T.Jv)("/f/{fileId}",{fileId:this.fileid});return e.preventDefault(),e.stopPropagation(),void window.open(s,t?"_blank":"_self")}e.preventDefault(),e.stopPropagation(),this.defaultFileAction.exec(this.source,this.currentView,this.currentDir)},openDetailsIfAvailable(e){e.preventDefault(),e.stopPropagation(),Z?.enabled?.([this.source],this.currentView)&&Z.exec(this.source,this.currentView,this.currentDir)},onDragOver(e){this.dragover=this.canDrop,this.canDrop?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none"},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget)||(this.dragover=!1)},async onDragStart(e){if(e.stopPropagation(),!this.canDrag||!this.fileid)return e.preventDefault(),void e.stopPropagation();j.debug("Drag started",{event:e}),e.dataTransfer?.clearData?.(),this.renamingStore.$reset(),this.selectedFiles.includes(this.source.source)?this.draggingStore.set(this.selectedFiles):this.draggingStore.set([this.source.source]);const t=this.draggingStore.dragging.map((e=>this.filesStore.getNode(e))),s=await(async e=>new Promise((t=>{Xs||(Xs=(new Js).$mount(),document.body.appendChild(Xs.$el)),Xs.update(e),Xs.$on("loaded",(()=>{t(Xs.$el),Xs.$off("loaded")}))})))(t);e.dataTransfer?.setDragImage(s,-10,-10)},onDragEnd(){this.draggingStore.reset(),this.dragover=!1,j.debug("Drag ended")},async onDrop(e){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault(),e.stopPropagation();const t=this.draggingFiles,s=[...e.dataTransfer?.items||[]],i=await ns(s),n=await(this.currentView?.getContents(this.source.path)),a=n?.folder;if(!a)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));if(!this.canDrop||e.button)return;const o=e.ctrlKey;if(this.dragover=!1,j.debug("Dropped",{event:e,folder:a,selection:t,fileTree:i}),0===t.length&&i.contents.length>0)return void await as(i,a,n.contents);const r=t.map((e=>this.filesStore.getNode(e)));await os(r,a,n.contents,o),t.some((e=>this.selectedFiles.includes(e)))&&(j.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},t:u.t}});var ti=i(82182);function si(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e.trim())return(0,u.t)("files","Filename must not be empty.");try{return(0,m.KT)(e),""}catch(e){if(!(e instanceof m.di))throw e;switch(e.reason){case m.nF.Character:return(0,u.t)("files",'"{char}" is not allowed inside a filename.',{char:e.segment},void 0,{escape:t});case m.nF.ReservedName:return(0,u.t)("files",'"{segment}" is a reserved name and not allowed for filenames.',{segment:e.segment},void 0,{escape:!1});case m.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,u.t)("files",'"{extension}" is not an allowed filetype.',{extension:e.segment},void 0,{escape:!1}):(0,u.t)("files",'Filenames must not end with "{extension}".',{extension:e.segment},void 0,{escape:!1});default:return(0,u.t)("files","Invalid filename.")}}}const ii=(0,o.pM)({name:"FileEntryName",components:{NcTextField:ti.A},props:{basename:{type:String,required:!0},extension:{type:String,required:!0},nodes:{type:Array,required:!0},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t}=zt(),s=Nt(),i=xs();return{currentView:e,defaultFileAction:(0,o.WQ)("defaultFileAction"),directory:t,filesListWidth:s,renamingStore:i}},computed:{isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},newName:{get(){return this.renamingStore.newNodeName},set(e){this.renamingStore.newNodeName=e}},renameLabel(){return{[m.pt.File]:(0,u.Tl)("files","Filename"),[m.pt.Folder]:(0,u.Tl)("files","Folder name")}[this.source.type]},linkTo(){if(this.source.status===m.zI.FAILED)return{is:"span",params:{title:(0,u.Tl)("files","This node is unavailable")}};if(this.defaultFileAction){const e=this.defaultFileAction.displayName([this.source],this.currentView);return{is:"button",params:{"aria-label":e,title:e,tabindex:"0"}}}return{is:"span"}}},watch:{isRenaming:{immediate:!0,handler(e){e&&this.startRenaming()}},newName(){const e=this.newName.trim?.()||"",t=this.$refs.renameInput?.$el.querySelector("input");if(!t)return;let s=si(e);""===s&&this.checkIfNodeExists(e)&&(s=(0,u.Tl)("files","Another entry with the same name already exists.")),this.$nextTick((()=>{this.isRenaming&&(t.setCustomValidity(s),t.reportValidity())}))}},methods:{checkIfNodeExists(e){return this.nodes.find((t=>t.basename===e&&t!==this.source))},startRenaming(){this.$nextTick((()=>{const e=this.$refs.renameInput?.$el.querySelector("input");if(!e)return void j.error("Could not find the rename input");e.focus();const t=this.source.basename.length-(this.source.extension??"").length;e.setSelectionRange(0,t),e.dispatchEvent(new Event("keyup"))}))},stopRenaming(){this.isRenaming&&this.renamingStore.$reset()},async onRename(){const e=this.newName.trim?.()||"";if(!this.$refs.renameForm.checkValidity())return void(0,c.Qg)((0,u.Tl)("files","Invalid filename.")+" "+si(e));const t=this.source.basename;if(e!==t)try{await this.renamingStore.rename()&&((0,c.Te)((0,u.Tl)("files",'Renamed "{oldName}" to "{newName}"',{oldName:t,newName:this.source.basename})),this.$nextTick((()=>{const e=this.$refs.basename;e?.focus()})))}catch(e){j.error(e),(0,c.Qg)(e.message),this.startRenaming()}else this.stopRenaming()},t:u.Tl}}),ni=ii;var ai=i(24146),oi={};oi.styleTagTransform=Le(),oi.setAttributes=_e(),oi.insert=Ce().bind(null,"head"),oi.domAPI=be(),oi.insertStyleElement=Te(),we()(ai.A,oi),ai.A&&ai.A.locals&&ai.A.locals;const ri=(0,ae.A)(ni,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.isRenaming?t("form",{directives:[{name:"on-click-outside",rawName:"v-on-click-outside",value:e.onRename,expression:"onRename"}],ref:"renameForm",staticClass:"files-list__row-rename",attrs:{"aria-label":e.t("files","Rename file")},on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.onRename.apply(null,arguments)}}},[t("NcTextField",{ref:"renameInput",attrs:{label:e.renameLabel,autofocus:!0,minlength:1,required:!0,value:e.newName,enterkeyhint:"done"},on:{"update:value":function(t){e.newName=t},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.stopRenaming.apply(null,arguments)}}})],1):t(e.linkTo.is,e._b({ref:"basename",tag:"component",staticClass:"files-list__row-name-link",attrs:{"data-cy-files-list-row-name-link":""}},"component",e.linkTo.params,!1),[t("span",{staticClass:"files-list__row-name-text",attrs:{dir:"auto"}},[t("span",{staticClass:"files-list__row-name-",domProps:{textContent:e._s(e.basename)}}),e._v(" "),t("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:e._s(e.extension)}})])])}),[],!1,null,"08f77d70",null).exports;var li=i(95341),di=i(43261),ci=i(60557);const mi={name:"FolderOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gi=(0,ae.A)(mi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-open-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ui={name:"KeyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fi=(0,ae.A)(ui,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon key-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,pi={name:"NetworkIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hi=(0,ae.A)(pi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon network-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,vi={name:"TagIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wi=(0,ae.A)(vi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tag-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,Ai={name:"PlayCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bi=(0,ae.A)(Ai,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon play-circle-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,16.5V7.5L16,12M12,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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,yi={name:"CollectivesIcon",props:{title:{type:String,default:""},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ci=(0,ae.A)(yi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon collectives-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 16 16"}},[t("path",{attrs:{d:"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z"}}),e._v(" "),t("path",{attrs:{d:"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z"}}),e._v(" "),t("path",{attrs:{d:"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z"}}),e._v(" "),t("path",{attrs:{d:"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z"}})])])}),[],!1,null,null,null).exports,ki=(0,o.pM)({name:"FavoriteIcon",components:{NcIconSvgWrapper:We.A},data:()=>({StarSvg:H}),async mounted(){await this.$nextTick();const e=this.$el.querySelector("svg");e?.setAttribute?.("viewBox","-4 -4 30 30")},methods:{t:u.Tl}});var _i=i(4613),xi={};xi.styleTagTransform=Le(),xi.setAttributes=_e(),xi.insert=Ce().bind(null,"head"),xi.domAPI=be(),xi.insertStyleElement=Te(),we()(_i.A,xi),_i.A&&_i.A.locals&&_i.A.locals;const Ti=(0,ae.A)(ki,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("files","Favorite"),svg:e.StarSvg}})}),[],!1,null,"0b2a4155",null).exports,Si=(0,o.pM)({name:"FileEntryPreview",components:{AccountGroupIcon:di.A,AccountPlusIcon:ft,CollectivesIcon:Ci,FavoriteIcon:Ti,FileIcon:ci.A,FolderIcon:Hs.A,FolderOpenIcon:gi,KeyIcon:fi,LinkIcon:wt.A,NetworkIcon:hi,TagIcon:wi},props:{source:{type:Object,required:!0},dragover:{type:Boolean,default:!1},gridMode:{type:Boolean,default:!1}},setup:()=>({userConfigStore:(0,se.O)(),isPublic:(0,$.f)(),publicSharingToken:(0,$.G)()}),data:()=>({backgroundFailed:void 0,backgroundLoaded:!1}),computed:{isFavorite(){return 1===this.source.attributes.favorite},userConfig(){return this.userConfigStore.userConfig},cropPreviews(){return!0===this.userConfig.crop_image_previews},previewUrl(){if(this.source.type===m.pt.Folder)return null;if(!0===this.backgroundFailed)return null;if(!0!==this.source.attributes["has-preview"]&&void 0!==this.source.mime&&"application/octet-stream"!==this.source.mime){const e=(0,T.Jv)("/core/mimeicon?mime={mime}",{mime:this.source.mime});return new URL(window.location.origin+e).href}try{const e=this.source.attributes.previewUrl||(this.isPublic?(0,T.Jv)("/apps/files_sharing/publicpreview/{token}?file={file}",{token:this.publicSharingToken,file:this.source.path}):(0,T.Jv)("/core/preview?fileId={fileid}",{fileid:String(this.source.fileid)})),t=new URL(window.location.origin+e);t.searchParams.set("x",this.gridMode?"128":"32"),t.searchParams.set("y",this.gridMode?"128":"32"),t.searchParams.set("mimeFallback","true");const s=this.source?.attributes?.etag||"";return t.searchParams.set("v",s.slice(0,6)),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(e){return null}},fileOverlay(){return void 0!==this.source.attributes["metadata-files-live-photo"]?bi:null},folderOverlay(){if(this.source.type!==m.pt.Folder)return null;if(1===this.source?.attributes?.["is-encrypted"])return fi;if(this.source?.attributes?.["is-tag"])return wi;const e=Object.values(this.source?.attributes?.["share-types"]||{}).flat();if(e.some((e=>e===at.I.Link||e===at.I.Email)))return wt.A;if(e.length>0)return ft;switch(this.source?.attributes?.["mount-type"]){case"external":case"external-session":return hi;case"group":return di.A;case"collective":return Ci;case"shared":return ft}return null},hasBlurhash(){return void 0!==this.source.attributes["metadata-blurhash"]}},mounted(){this.hasBlurhash&&this.$refs.canvas&&this.drawBlurhash()},methods:{reset(){this.backgroundFailed=void 0,this.backgroundLoaded=!1;const e=this.$refs.previewImg;e&&(e.src="")},onBackgroundLoad(){this.backgroundFailed=!1,this.backgroundLoaded=!0},onBackgroundError(e){""!==e.target?.src&&(this.backgroundFailed=!0,this.backgroundLoaded=!1)},drawBlurhash(){const e=this.$refs.canvas,t=e.width,s=e.height,i=(0,li.D4)(this.source.attributes["metadata-blurhash"],t,s),n=e.getContext("2d");if(null===n)return void j.error("Cannot create context for blurhash canvas");const a=n.createImageData(t,s);a.data.set(i),n.putImageData(a,0,0)},t:u.Tl}}),Li=Si,Ni=(0,ae.A)(Li,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"files-list__row-icon"},["folder"===e.source.type?[e.dragover?e._m(0):[e._m(1),e._v(" "),e.folderOverlay?t(e.folderOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay"}):e._e()]]:e.previewUrl?t("span",{staticClass:"files-list__row-icon-preview-container"},[!e.hasBlurhash||!0!==e.backgroundFailed&&e.backgroundLoaded?e._e():t("canvas",{ref:"canvas",staticClass:"files-list__row-icon-blurhash",attrs:{"aria-hidden":"true"}}),e._v(" "),!0!==e.backgroundFailed?t("img",{key:e.source.fileid,ref:"previewImg",staticClass:"files-list__row-icon-preview",class:{"files-list__row-icon-preview--loaded":!1===e.backgroundFailed},attrs:{alt:"",loading:"lazy",src:e.previewUrl},on:{error:e.onBackgroundError,load:e.onBackgroundLoad}}):e._e()]):e._m(2),e._v(" "),e.isFavorite?t("span",{staticClass:"files-list__row-icon-favorite"},[e._m(3)],1):e._e(),e._v(" "),e.fileOverlay?t(e.fileOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay files-list__row-icon-overlay--file"}):e._e()],2)}),[function(){var e=this._self._c;return this._self._setupProxy,e("FolderOpenIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FolderIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FileIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FavoriteIcon")}],!1,null,null,null).exports,Fi=(0,o.pM)({name:"FileEntry",components:{CustomElementRender:Ss,FileEntryActions:Os,FileEntryCheckbox:Ms,FileEntryName:ri,FileEntryPreview:Ni,NcDateTime:Cs.A},mixins:[ei],props:{isMimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1}},setup(){const e=ks(),t=rs(),s=Pt(),i=xs(),n=Bt(),a=Nt(),{currentView:o}=He(),{directory:r,fileId:l}=zt();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:i,selectionStore:n,currentDir:r,currentFileId:l,currentView:o,filesListWidth:a}},computed:{rowListeners(){return{...this.isRenaming?{}:{dragstart:this.onDragStart,dragover:this.onDragOver},contextmenu:this.onRightClick,dragleave:this.onDragLeave,dragend:this.onDragEnd,drop:this.onDrop}},columns(){return this.filesListWidth<512||this.compact?[]:this.currentView.columns||[]},mime(){if(this.source.type===m.pt.Folder)return this.t("files","Folder");if(!this.source.mime||"application/octet-stream"===this.source.mime)return(0,u.t)("files","Unknown file type");if(window.OC?.MimeTypeList?.names?.[this.source.mime])return window.OC.MimeTypeList.names[this.source.mime];const e=this.source.mime.split("/")[0],t=this.source?.extension?.toUpperCase().replace(/^\./,"")||"";return"image"===e?(0,u.t)("files","{ext} image",{ext:t}):"video"===e?(0,u.t)("files","{ext} video",{ext:t}):"audio"===e?(0,u.t)("files","{ext} audio",{ext:t}):"text"===e?(0,u.t)("files","{ext} text",{ext:t}):this.source.mime},size(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?this.t("files","Pending"):(0,m.v7)(e,!0)},sizeOpacity(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(Math.min(100,100*Math.pow(e/10485760,2)))}%, var(--color-text-maxcontrast))`}}},created(){(0,l.C)("Enter",this.triggerDefaultAction,{stop:!0,prevent:!0})},methods:{formatFileSize:m.v7,triggerDefaultAction(){this.isActive&&this.defaultFileAction?.exec(this.source,this.currentView,this.currentDir)}}}),Ui=(0,ae.A)(Fi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",e._g({staticClass:"files-list__row",class:{"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading,"files-list__row--active":e.isActive},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag}},e.rowListeners),[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{source:e.source,dragover:e.dragover},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),t("FileEntryActions",{directives:[{name:"show",rawName:"v-show",value:!e.isRenamingSmallScreen,expression:"!isRenamingSmallScreen"}],ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}}),e._v(" "),e.isMimeAvailable?t("td",{staticClass:"files-list__row-mime",attrs:{title:e.mime,"data-cy-files-list-row-mime":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.mime))])]):e._e(),e._v(" "),!e.compact&&e.isSizeAvailable?t("td",{staticClass:"files-list__row-size",style:e.sizeOpacity,attrs:{"data-cy-files-list-row-size":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.size))])]):e._e(),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{"ignore-seconds":"",timestamp:e.mtime}}):t("span",[e._v(e._s(e.t("files","Unknown date")))])],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("td",{key:s.id,staticClass:"files-list__row-column-custom",class:`files-list__row-${e.currentView.id}-${s.id}`,attrs:{"data-cy-files-list-row-column-custom":s.id},on:{click:e.openDetailsIfAvailable}},[t("CustomElementRender",{attrs:{"current-view":e.currentView,render:s.render,source:e.source}})],1)}))],2)}),[],!1,null,null,null).exports,Ei=(0,o.pM)({name:"FileEntryGrid",components:{FileEntryActions:Os,FileEntryCheckbox:Ms,FileEntryName:ri,FileEntryPreview:Ni,NcDateTime:Cs.A},mixins:[ei],inheritAttrs:!1,setup(){const e=ks(),t=rs(),s=Pt(),i=xs(),n=Bt(),{currentView:a}=He(),{directory:o,fileId:r}=zt();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:i,selectionStore:n,currentDir:o,currentFileId:r,currentView:a}},data:()=>({gridMode:!0})}),Ii=(0,ae.A)(Ei,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row",class:{"files-list__row--active":e.isActive,"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag},on:{contextmenu:e.onRightClick,dragover:e.onDragOver,dragleave:e.onDragLeave,dragstart:e.onDragStart,dragend:e.onDragEnd,drop:e.onDrop}},[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{dragover:e.dragover,"grid-mode":!0,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,"grid-mode":!0,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{"ignore-seconds":"",timestamp:e.mtime}}):e._e()],1):e._e(),e._v(" "),t("FileEntryActions",{ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{"grid-mode":!0,opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}})],1)}),[],!1,null,null,null).exports;var Pi=i(41944),zi=i(42678);const Bi=(0,o.pM)({__name:"FileListFilters",setup(e){const t=Ze(),s=(0,o.EW)((()=>t.filtersWithUI)),i=(0,o.EW)((()=>t.activeChips)),n=(0,o.KR)([]);return(0,o.nT)((()=>{n.value.forEach(((e,t)=>s.value[t].mount(e)))})),{__sfc:!0,filterStore:t,visualFilters:s,activeChips:i,filterElements:n,t:u.t,NcAvatar:Pi.A,NcChip:zi.A}}});var Di=i(28665),Ri={};Ri.styleTagTransform=Le(),Ri.setAttributes=_e(),Ri.insert=Ce().bind(null,"head"),Ri.domAPI=be(),Ri.insertStyleElement=Te(),we()(Di.A,Ri),Di.A&&Di.A.locals&&Di.A.locals;const Oi=(0,ae.A)(Bi,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t("div",{staticClass:"file-list-filters"},[t("div",{staticClass:"file-list-filters__filter",attrs:{"data-cy-files-filters":""}},e._l(s.visualFilters,(function(e){return t("span",{key:e.id,ref:"filterElements",refInFor:!0})})),0),e._v(" "),s.activeChips.length>0?t("ul",{staticClass:"file-list-filters__active",attrs:{"aria-label":s.t("files","Active filters")}},e._l(s.activeChips,(function(i,n){return t("li",{key:n},[t(s.NcChip,{attrs:{"aria-label-close":s.t("files","Remove filter"),"icon-svg":i.icon,text:i.text},on:{close:i.onclick},scopedSlots:e._u([i.user?{key:"icon",fn:function(){return[t(s.NcAvatar,{attrs:{"disable-menu":"","show-user-status":!1,size:24,user:i.user}})]},proxy:!0}:null],null,!0)})],1)})),0):e._e()])}),[],!1,null,"3d6bff7e",null).exports,ji=(0,o.pM)({name:"FilesListTableFooter",props:{currentView:{type:m.Ss,required:!0},isMimeAvailable:{type:Boolean,default:!1},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const e=It(),t=Pt(),{directory:s}=zt();return{filesStore:t,pathsStore:e,directory:s}},computed:{currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return this.filesStore.getNode(e)},columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},totalSize(){return this.currentFolder?.size?(0,m.v7)(this.currentFolder.size,!0):(0,m.v7)(this.nodes.reduce(((e,t)=>e+(t.size??0)),0),!0)}},methods:{classForColumn(e){return{"files-list__row-column-custom":!0,[`files-list__row-${this.currentView.id}-${e.id}`]:!0}},t:u.Tl}});var Mi=i(18789),Vi={};Vi.styleTagTransform=Le(),Vi.setAttributes=_e(),Vi.insert=Ce().bind(null,"head"),Vi.domAPI=be(),Vi.insertStyleElement=Te(),we()(Mi.A,Vi),Mi.A&&Mi.A.locals&&Mi.A.locals;const $i=(0,ae.A)(ji,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",[t("th",{staticClass:"files-list__row-checkbox"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("files","Total rows summary")))])]),e._v(" "),t("td",{staticClass:"files-list__row-name"},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("span",[e._v(e._s(e.summary))])]),e._v(" "),t("td",{staticClass:"files-list__row-actions"}),e._v(" "),e.isMimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mime"}):e._e(),e._v(" "),e.isSizeAvailable?t("td",{staticClass:"files-list__column files-list__row-size"},[t("span",[e._v(e._s(e.totalSize))])]):e._e(),e._v(" "),e.isMtimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mtime"}):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s)},[t("span",[e._v(e._s(s.summary?.(e.nodes,e.currentView)))])])}))],2)}),[],!1,null,"e916ded0",null).exports;var Wi=i(25384),Hi=i(33388);const qi=o.Ay.extend({setup(){const{currentView:e}=He();return{currentView:e}},computed:{...(0,a.aH)(Ye,["getConfig","setSortingBy","toggleSortingDirection"]),sortingMode(){return this.getConfig(this.currentView.id)?.sorting_mode||this.currentView?.defaultSortKey||"basename"},isAscSorting(){const e=this.getConfig(this.currentView.id)?.sorting_direction;return"desc"!==e}},methods:{toggleSortBy(e){this.sortingMode!==e?this.setSortingBy(e,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),Yi=(0,o.pM)({name:"FilesListTableHeaderButton",components:{MenuDown:Wi.A,MenuUp:Hi.A,NcButton:ct.A},mixins:[qi],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{t:u.Tl}});var Gi=i(35613),Ki={};Ki.styleTagTransform=Le(),Ki.setAttributes=_e(),Ki.insert=Ce().bind(null,"head"),Ki.domAPI=be(),Ki.insertStyleElement=Te(),we()(Gi.A,Ki),Gi.A&&Gi.A.locals&&Gi.A.locals;const Qi=(0,ae.A)(Yi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcButton",{class:["files-list__column-sort-button",{"files-list__column-sort-button--active":e.sortingMode===e.mode,"files-list__column-sort-button--size":"size"===e.sortingMode}],attrs:{alignment:"size"===e.mode?"end":"start-reverse",type:"tertiary",title:e.name},on:{click:function(t){return e.toggleSortBy(e.mode)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.sortingMode!==e.mode||e.isAscSorting?t("MenuUp",{staticClass:"files-list__column-sort-button-icon"}):t("MenuDown",{staticClass:"files-list__column-sort-button-icon"})]},proxy:!0}])},[e._v(" "),t("span",{staticClass:"files-list__column-sort-button-text"},[e._v(e._s(e.name))])])}),[],!1,null,"c3dbd7e0",null).exports,Ji=(0,o.pM)({name:"FilesListTableHeader",components:{FilesListTableHeaderButton:Qi,NcCheckboxRadioSwitch:ze.A},mixins:[qi],props:{isMimeAvailable:{type:Boolean,default:!1},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const e=Pt(),t=Bt(),{currentView:s}=He();return{filesStore:e,selectionStore:t,currentView:s}},computed:{columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},dir(){return(this.$route?.query?.dir||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const e=(0,u.Tl)("files","Toggle selection for all files and folders");return{"aria-label":e,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:e}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},created(){(0,l.C)("a",this.onToggleAll,{ctrl:!0,stop:!0,prevent:!0}),(0,l.C)("Escape",this.resetSelection,{stop:!0,prevent:!0})},methods:{ariaSortForMode(e){return this.sortingMode===e?this.isAscSorting?"ascending":"descending":null},classForColumn(e){return{"files-list__column":!0,"files-list__column--sortable":!!e.sort,"files-list__row-column-custom":!0,[`files-list__row-${this.currentView?.id}-${e.id}`]:!0}},onToggleAll(){if(arguments.length>0&&void 0!==arguments[0]&&!arguments[0])j.debug("Cleared selection"),this.selectionStore.reset();else{const e=this.nodes.map((e=>e.source)).filter(Boolean);j.debug("Added all nodes to selection",{selection:e}),this.selectionStore.setLastIndex(null),this.selectionStore.set(e)}},resetSelection(){this.isNoneSelected||this.selectionStore.reset()},t:u.Tl}});var Xi=i(4511),Zi={};Zi.styleTagTransform=Le(),Zi.setAttributes=_e(),Zi.insert=Ce().bind(null,"head"),Zi.domAPI=be(),Zi.insertStyleElement=Te(),we()(Xi.A,Zi),Xi.A&&Xi.A.locals&&Xi.A.locals;const en=(0,ae.A)(Ji,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row-head"},[t("th",{staticClass:"files-list__column files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-files-list-selection-checkbox":""},on:{"update:checked":e.onToggleAll}},"NcCheckboxRadioSwitch",e.selectAllBind,!1))],1),e._v(" "),t("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",attrs:{"aria-sort":e.ariaSortForMode("basename")}},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Name"),mode:"basename"}})],1),e._v(" "),t("th",{staticClass:"files-list__row-actions"}),e._v(" "),e.isMimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mime",class:{"files-list__column--sortable":e.isMimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","File type"),mode:"mime"}})],1):e._e(),e._v(" "),e.isSizeAvailable?t("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":e.isSizeAvailable},attrs:{"aria-sort":e.ariaSortForMode("size")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Size"),mode:"size"}})],1):e._e(),e._v(" "),e.isMtimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mtime",class:{"files-list__column--sortable":e.isMtimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mtime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Modified"),mode:"mtime"}})],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s),attrs:{"aria-sort":e.ariaSortForMode(s.id)}},[s.sort?t("FilesListTableHeaderButton",{attrs:{name:s.title,mode:s.id}}):t("span",[e._v("\n\t\t\t"+e._s(s.title)+"\n\t\t")])],1)}))],2)}),[],!1,null,"06480c18",null).exports,tn=(0,m.qK)(),sn=(0,o.pM)({name:"FilesListTableHeaderActions",components:{ArrowLeftIcon:Ns,NcActions:lt.A,NcActionButton:dt.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A},mixins:[Us],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup(){const e=ks(),t=Pt(),s=Bt(),i=Nt(),{directory:n}=zt();return{directory:n,fileListWidth:i,actionsMenuStore:e,filesStore:t,selectionStore:s}},data:()=>({loading:null}),computed:{enabledFileActions(){return tn.filter((e=>!e.renderInline)).filter((e=>e.default!==m.m9.HIDDEN)).filter((e=>!e.enabled||e.enabled(this.nodes,this.currentView))).sort(((e,t)=>(e.order||0)-(t.order||0)))},enabledInlineActions(){return this.enabledFileActions.filter((e=>void 0===e.parent)).filter((e=>void 0!==e.execBatch)).filter((e=>!this.isValidMenu(e))).slice(0,this.inlineActions)},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=this.enabledFileActions.filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>e.parent)).map((e=>e.parent)),s=e.filter((e=>e.execBatch?!e.parent:t.includes(e.id))).filter((e=>!this.enabledInlineActions.includes(e)));return[...this.enabledInlineActions,...s]},nodes(){return this.selectedNodes.map((e=>this.getNode(e))).filter(Boolean)},areSomeNodesLoading(){return this.nodes.some((e=>e.status===m.zI.LOADING))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(e){this.actionsMenuStore.opened=e?"global":null}},inlineActions(){return this.fileListWidth<512?0:this.fileListWidth<768?1:this.fileListWidth<1024?2:3}},methods:{getNode(e){return this.filesStore.getNode(e)},async onActionClick(e){if(this.enabledSubmenuActions[e.id])return void(this.openedSubmenu=e);let t=e.id;try{t=e.displayName(this.nodes,this.currentView)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}const s=this.selectedNodes;try{this.loading=e.id,this.nodes.forEach((e=>{this.$set(e,"status",m.zI.LOADING)}));const i=await e.execBatch(this.nodes,this.currentView,this.directory);if(!i.some((e=>null!==e)))return void this.selectionStore.reset();if(i.some((e=>!1===e))){const e=s.filter(((e,t)=>!1===i[t]));if(this.selectionStore.set(e),i.some((e=>null===e)))return;return void(0,c.Qg)(this.t("files",'"{displayName}" failed on some elements',{displayName:t}))}(0,c.Te)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:t})),this.selectionStore.reset()}catch(s){j.error("Error while executing action",{action:e,e:s}),(0,c.Qg)(this.t("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loading=null,this.nodes.forEach((e=>{this.$set(e,"status",void 0)}))}},t:u.Tl}}),nn=sn;var an=i(3619),on={};on.styleTagTransform=Le(),on.setAttributes=_e(),on.insert=Ce().bind(null,"head"),on.domAPI=be(),on.insertStyleElement=Te(),we()(an.A,on),an.A&&an.A.locals&&an.A.locals;var rn=(0,ae.A)(nn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{"data-cy-files-list-selection-actions":""}},[t("NcActions",{ref:"actionsMenu",attrs:{container:"#app-content-vue",disabled:!!e.loading||e.areSomeNodesLoading,"force-name":!0,inline:e.enabledInlineActions.length,"menu-name":e.enabledInlineActions.length<=1?e.t("files","Actions"):null,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-batch-${s.id}`,refInFor:!0,class:{[`files-list__row-actions-batch-${s.id}`]:!0,"files-list__row-actions-batch--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-selection-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-actions-batch-back",attrs:{"data-cy-files-list-selection-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-actions-batch--submenu",class:`files-list__row-actions-batch-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-selection-action":s.id,"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t\t")])}))]:e._e()],2)],1)}),[],!1,null,"c463105a",null);const ln=rn.exports,dn=(0,o.pM)({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},extraProps:{type:Object,default:()=>({})},scrollToIndex:{type:Number,default:0},gridMode:{type:Boolean,default:!1},caption:{type:String,default:""}},setup:()=>({fileListWidth:Nt()}),data(){return{index:this.scrollToIndex,beforeHeight:0,footerHeight:0,headerHeight:0,tableHeight:0,resizeObserver:null}},computed:{isReady(){return this.tableHeight>0},bufferItems(){return this.gridMode?this.columnCount:3},itemHeight(){return this.gridMode?246:55},itemWidth:()=>198,visibleRows(){return Math.floor((this.tableHeight-this.headerHeight)/this.itemHeight)},rowCount(){return this.visibleRows+this.bufferItems/this.columnCount*2+1},columnCount(){return this.gridMode?Math.floor(this.fileListWidth/this.itemWidth):1},startIndex(){const e=this.index-this.index%this.columnCount;return Math.max(0,e-this.bufferItems)},shownItems(){return this.gridMode?this.rowCount*this.columnCount:this.rowCount},renderedItems(){if(!this.isReady)return[];const e=this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems),t=e.filter((e=>Object.values(this.$_recycledPool).includes(e[this.dataKey]))).map((e=>e[this.dataKey])),s=Object.keys(this.$_recycledPool).filter((e=>!t.includes(this.$_recycledPool[e])));return e.map((e=>{const t=Object.values(this.$_recycledPool).indexOf(e[this.dataKey]);if(-1!==t)return{key:Object.keys(this.$_recycledPool)[t],item:e};const i=s.pop()||Math.random().toString(36).substr(2);return this.$_recycledPool[i]=e[this.dataKey],{key:i,item:e}}))},totalRowCount(){return Math.ceil(this.dataSources.length/this.columnCount)},tbodyStyle(){const e=Math.round(this.startIndex/this.columnCount),t=Math.max(0,this.totalRowCount-e-this.rowCount);return{paddingBlock:`${e*this.itemHeight}px ${t*this.itemHeight}px`,minHeight:this.totalRowCount*this.itemHeight+"px"}}},watch:{scrollToIndex(e){this.scrollTo(e)},totalRowCount(){this.scrollToIndex&&this.scrollTo(this.scrollToIndex)},columnCount(e,t){0!==t?this.scrollTo(this.index):j.debug("VirtualList: columnCount is 0, skipping scroll")}},mounted(){this.$_recycledPool={},this.resizeObserver=new ResizeObserver(us()((()=>{this.updateHeightVariables(),j.debug("VirtualList: resizeObserver updated"),this.onScroll()}),100)),this.resizeObserver.observe(this.$el),this.resizeObserver.observe(this.$refs.before),this.resizeObserver.observe(this.$refs.filters),this.resizeObserver.observe(this.$refs.footer),this.$nextTick((()=>{this.updateHeightVariables(),this.scrollToIndex&&this.scrollTo(this.scrollToIndex)}))},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{scrollTo(e){if(!this.$el)return;if(this.totalRowCount<this.visibleRows)return void j.debug("VirtualList: Skip scrolling, nothing to scroll",{index:e,totalRows:this.totalRowCount,visibleRows:this.visibleRows});const t=(this.totalRowCount-this.visibleRows)*this.columnCount+(this.columnCount-1);let s=this.indexToScrollPos(Math.min(e,t));this.index=e,e>=this.columnCount&&e<=t?(s-=this.itemHeight/2,this.index=e-this.columnCount):e>t&&(e<=t+this.columnCount?s+=this.footerHeight/2:s+=this.footerHeight),this.$nextTick((()=>{this.$el.scrollTop=s,j.debug(`VirtualList: scrolling to index ${e}`,{clampedIndex:t,scrollTop:s,columnCount:this.columnCount,total:this.totalRowCount,visibleRows:this.visibleRows,beforeHeight:this.beforeHeight})}))},onScroll(){this._onScrollHandle??=requestAnimationFrame((()=>{this._onScrollHandle=null;const e=this.scrollPosToIndex(this.$el.scrollTop);e!==this.index&&(this.index=Math.max(0,Math.floor(e)),this.$emit("scroll"))}))},scrollPosToIndex(e){const t=e-this.beforeHeight;return Math.max(0,Math.floor(t/this.itemHeight))*this.columnCount},indexToScrollPos(e){return Math.floor(e/this.columnCount)*this.itemHeight+this.beforeHeight},updateHeightVariables(){this.tableHeight=this.$el?.clientHeight??0,this.beforeHeight=this.$refs.before?.clientHeight??0,this.footerHeight=this.$refs.footer?.clientHeight??0;const e=this.$refs.thead?.clientHeight??0,t=this.$refs.filters?.clientHeight??0;this.headerHeight=e+t}}}),cn=(0,ae.A)(dn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list",class:{"files-list--grid":e.gridMode},attrs:{"data-cy-files-list":""},on:{"&scroll":function(t){return e.onScroll.apply(null,arguments)}}},[t("div",{ref:"before",staticClass:"files-list__before"},[e._t("before")],2),e._v(" "),t("div",{ref:"filters",staticClass:"files-list__filters"},[e._t("filters")],2),e._v(" "),e.$scopedSlots["header-overlay"]?t("div",{staticClass:"files-list__thead-overlay"},[e._t("header-overlay")],2):e._e(),e._v(" "),t("table",{staticClass:"files-list__table",class:{"files-list__table--with-thead-overlay":!!e.$scopedSlots["header-overlay"]}},[e.caption?t("caption",{staticClass:"hidden-visually"},[e._v("\n\t\t\t"+e._s(e.caption)+"\n\t\t")]):e._e(),e._v(" "),t("thead",{ref:"thead",staticClass:"files-list__thead",attrs:{"data-cy-files-list-thead":""}},[e._t("header")],2),e._v(" "),t("tbody",{staticClass:"files-list__tbody",style:e.tbodyStyle,attrs:{"data-cy-files-list-tbody":""}},e._l(e.renderedItems,(function(s,i){let{key:n,item:a}=s;return t(e.dataComponent,e._b({key:n,tag:"component",attrs:{source:a,index:i}},"component",e.extraProps,!1))})),1),e._v(" "),t("tfoot",{ref:"footer",staticClass:"files-list__tfoot",attrs:{"data-cy-files-list-tfoot":""}},[e._t("footer")],2)])])}),[],!1,null,null,null).exports,mn=(0,o.pM)({name:"FilesListVirtual",components:{FileListFilters:Oi,FilesListHeader:ys,FilesListTableFooter:$i,FilesListTableHeader:en,VirtualList:cn,FilesListTableHeaderActions:ln},props:{currentView:{type:m.Ss,required:!0},currentFolder:{type:m.vd,required:!0},nodes:{type:Array,required:!0},summary:{type:String,required:!0}},setup(){const e=ee(),t=Bt(),s=(0,se.O)(),i=Nt(),{fileId:n,openDetails:a,openFile:o}=zt();return{fileId:n,fileListWidth:i,headers:_t(),openDetails:a,openFile:o,activeStore:e,selectionStore:t,userConfigStore:s,n:u.n,t:u.t}},data:()=>({FileEntry:Ui,FileEntryGrid:Ii,scrollToIndex:0,openFileId:null}),computed:{userConfig(){return this.userConfigStore.userConfig},isMimeAvailable(){return!!this.userConfig.show_mime_column&&!(this.fileListWidth<1024)&&this.nodes.some((e=>void 0!==e.mime||"application/octet-stream"!==e.mime))},isMtimeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.mtime))},isSizeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.size))},cantUpload(){return this.currentFolder&&!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},caption(){const e=(0,u.t)("files","List of files and folders.");return[this.currentView.caption||e,this.cantUpload?(0,u.t)("files","You do not have permission to upload or create files here."):null,this.isQuotaExceeded?(0,u.t)("files","You have used your space quota and cannot upload files anymore."):null,(0,u.t)("files","Column headers with buttons are sortable."),(0,u.t)("files","This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.")].filter(Boolean).join("\n")},selectedNodes(){return this.selectionStore.selected},isNoneSelected(){return 0===this.selectedNodes.length}},watch:{fileId:{handler(e){this.scrollToFile(e,!1)},immediate:!0},openFile:{handler(e){e&&this.fileId&&this.handleOpenFile(this.fileId)},immediate:!0},openDetails:{handler(e){this.$nextTick((()=>{e&&this.fileId&&this.openSidebarForFile(this.fileId)}))},immediate:!0}},created(){(0,l.C)("Escape",this.unselectFile,{stop:!0,prevent:!0}),(0,l.C)(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],this.onKeyDown,{stop:!0,prevent:!0})},mounted(){window.document.querySelector("main.app-content").addEventListener("dragover",this.onDragOver),(0,U.B1)("files:sidebar:closed",this.onSidebarClosed)},beforeDestroy(){window.document.querySelector("main.app-content").removeEventListener("dragover",this.onDragOver),(0,U.al)("files:sidebar:closed",this.onSidebarClosed)},methods:{openSidebarForFile(e){const t=this.nodes.find((t=>t.fileid===e));if(t&&Z?.enabled?.([t],this.currentView))return j.debug("Opening sidebar on file "+t.path,{node:t}),void Z.exec(t,this.currentView,this.currentFolder.path);j.error(`Failed to open sidebar on file ${e}, file isn't cached yet !`,{fileId:e,node:t})},scrollToFile(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e){if(e===this.currentFolder.fileid)return;const s=this.nodes.findIndex((t=>t.fileid===e));t&&-1===s&&e!==this.currentFolder.fileid&&(0,c.Qg)((0,u.t)("files","File not found")),this.scrollToIndex=Math.max(0,s)}},unselectFile(){const e={...this.$route.query};delete e.openfile,delete e.opendetails,this.activeStore.clearActiveNode(),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(this.currentFolder.fileid??"")},e,!0)},onSidebarClosed(){if(this.openDetails){const e={...this.$route.query};delete e.opendetails,window.OCP.Files.Router.goToRoute(null,this.$route.params,e)}},async handleOpenFile(e){const t=this.nodes.find((t=>t.fileid===e));if(void 0===t)return;if(t.type===m.pt.File){const e=(0,m.qK)().filter((e=>!!e?.default)).filter((e=>!e.enabled||e.enabled([t],this.currentView))).filter((e=>"download"!==e.id)).sort(((e,t)=>(e.order||0)-(t.order||0))).at(0);if(e)return j.debug("Opening file "+t.path,{node:t}),await e.exec(t,this.currentView,this.currentFolder.path)}const s=this.$route.query;delete s.openfile,s.opendetails="",j.debug("Ignore `openfile` query and replacing with `opendetails` for "+t.path,{node:t}),await this.$router.replace({...this.$route,query:s})},onDragOver(e){const t=e.dataTransfer?.types.includes("Files");if(t)return;e.preventDefault(),e.stopPropagation();const s=this.$refs.table.$el,i=s.getBoundingClientRect().top,n=i+s.getBoundingClientRect().height;e.clientY<i+100?s.scrollTop=s.scrollTop-25:e.clientY>n-50&&(s.scrollTop=s.scrollTop+25)},onKeyDown(e){if("ArrowUp"===e.key||"ArrowDown"===e.key){const t=this.$refs.table?.columnCount??1,s=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,i="ArrowUp"===e.key?s-t:s+t;if(i<0||i>=this.nodes.length)return;const n=this.nodes[i];n&&n?.fileid&&this.setActiveNode(n)}if(this.userConfig.grid_view&&("ArrowLeft"===e.key||"ArrowRight"===e.key)){const t=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,s="ArrowLeft"===e.key?t-1:t+1;if(s<0||s>=this.nodes.length)return;const i=this.nodes[s];i&&i?.fileid&&this.setActiveNode(i)}},setActiveNode(e){j.debug("Navigating to file "+e.path,{node:e,fileid:e.fileid}),this.scrollToFile(e.fileid);const t={...this.$route.query};delete t.openfile,delete t.opendetails,this.activeStore.setActiveNode(e),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(e.fileid)},t,!0)}}}),gn=mn;var un=i(61501),fn={};fn.styleTagTransform=Le(),fn.setAttributes=_e(),fn.insert=Ce().bind(null,"head"),fn.domAPI=be(),fn.insertStyleElement=Te(),we()(un.A,fn),un.A&&un.A.locals&&un.A.locals;var pn=i(77),hn={};hn.styleTagTransform=Le(),hn.setAttributes=_e(),hn.insert=Ce().bind(null,"head"),hn.domAPI=be(),hn.insertStyleElement=Te(),we()(pn.A,hn),pn.A&&pn.A.locals&&pn.A.locals;const vn=(0,ae.A)(gn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("VirtualList",{ref:"table",attrs:{"data-component":e.userConfig.grid_view?e.FileEntryGrid:e.FileEntry,"data-key":"source","data-sources":e.nodes,"grid-mode":e.userConfig.grid_view,"extra-props":{isMimeAvailable:e.isMimeAvailable,isMtimeAvailable:e.isMtimeAvailable,isSizeAvailable:e.isSizeAvailable,nodes:e.nodes},"scroll-to-index":e.scrollToIndex,caption:e.caption},scopedSlots:e._u([{key:"filters",fn:function(){return[t("FileListFilters")]},proxy:!0},e.isNoneSelected?null:{key:"header-overlay",fn:function(){return[t("span",{staticClass:"files-list__selected"},[e._v("\n\t\t\t"+e._s(e.n("files","{count} selected","{count} selected",e.selectedNodes.length,{count:e.selectedNodes.length}))+"\n\t\t")]),e._v(" "),t("FilesListTableHeaderActions",{attrs:{"current-view":e.currentView,"selected-nodes":e.selectedNodes}})]},proxy:!0},{key:"before",fn:function(){return e._l(e.headers,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})}))},proxy:!0},{key:"header",fn:function(){return[t("FilesListTableHeader",{ref:"thead",attrs:{"files-list-width":e.fileListWidth,"is-mime-available":e.isMimeAvailable,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes}})]},proxy:!0},{key:"footer",fn:function(){return[t("FilesListTableFooter",{attrs:{"current-view":e.currentView,"files-list-width":e.fileListWidth,"is-mime-available":e.isMimeAvailable,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes,summary:e.summary}})]},proxy:!0}],null,!0)})}),[],!1,null,"1affbcbc",null).exports,wn=void 0!==(0,E.F)()?.files_sharing,An=(0,o.pM)({name:"FilesList",components:{BreadCrumbs:ms,DragAndDropNotice:As,FilesListHeader:ys,FilesListVirtual:vn,LinkIcon:wt.A,ListViewIcon:bt,NcAppContent:rt.A,NcActions:lt.A,NcActionButton:dt.A,NcButton:ct.A,NcEmptyContent:mt.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A,AccountPlusIcon:ft,UploadPicker:ot.U,ViewGridIcon:Ct,IconAlertCircleOutline:pt.A,IconReload:vt},mixins:[qi],props:{isPublic:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t,fileId:s}=zt(),i=Nt(),n=Pt(),a=Ze(),o=It(),r=Bt(),l=Rt(),d=(0,se.O)(),c=Ye(),m=(0,g.C)("core","config",[])["enable_non-accessible_features"]??!0,f=(0,g.C)("files","forbiddenCharacters",[]);return{currentView:e,directory:t,fileId:s,fileListWidth:i,headers:_t(),t:u.Tl,filesStore:n,filtersStore:a,pathsStore:o,selectionStore:r,uploaderStore:l,userConfigStore:d,viewConfigStore:c,enableGridView:m,forbiddenCharacters:f,ShareType:at.I}},data:()=>({loading:!0,loadingAction:null,error:null,promise:null,dirContentsFiltered:[]}),computed:{getContent(){const e=this.currentView;return async t=>{const s=(0,d.normalize)(`${this.currentFolder?.path??""}/${t??""}`),i=this.filesStore.getNodesByPath(e.id,s);return i.length>0?i:(await e.getContents(s)).contents}},userConfig(){return this.userConfigStore.userConfig},pageHeading(){const e=this.currentView?.name??(0,u.Tl)("files","Files");return void 0===this.currentFolder||"/"===this.directory?e:`${this.currentFolder.displayname} - ${e}`},currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return void 0!==e?this.filesStore.getNode(e):void 0},dirContents(){return(this.currentFolder?._children||[]).map(this.filesStore.getNode).filter((e=>!!e))},dirContentsSorted(){if(!this.currentView)return[];const e=(this.currentView?.columns||[]).find((e=>e.id===this.sortingMode));if(e?.sort&&"function"==typeof e.sort){const t=[...this.dirContentsFiltered].sort(e.sort);return this.isAscSorting?t:t.reverse()}return(0,m.ur)(this.dirContentsFiltered,{sortFavoritesFirst:this.userConfig.sort_favorites_first,sortFoldersFirst:this.userConfig.sort_folders_first,sortingMode:this.sortingMode,sortingOrder:this.isAscSorting?"asc":"desc"})},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const e=this.directory.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:e}}},shareTypesAttributes(){if(this.currentFolder?.attributes?.["share-types"])return Object.values(this.currentFolder?.attributes?.["share-types"]||{}).flat()},shareButtonLabel(){return this.shareTypesAttributes?this.shareButtonType===at.I.Link?(0,u.Tl)("files","Shared by link"):(0,u.Tl)("files","Shared"):(0,u.Tl)("files","Share")},shareButtonType(){return this.shareTypesAttributes?this.shareTypesAttributes.some((e=>e===at.I.Link))?at.I.Link:at.I.User:null},gridViewButtonLabel(){return this.userConfig.grid_view?(0,u.Tl)("files","Switch to list view"):(0,u.Tl)("files","Switch to grid view")},canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},canShare(){return wn&&!this.isPublic&&this.currentFolder&&!!(this.currentFolder.permissions&m.aX.SHARE)},showCustomEmptyView(){return!this.loading&&this.isEmptyDir&&void 0!==this.currentView?.emptyView},enabledFileListActions(){if(!this.currentView||!this.currentFolder)return[];const e=(0,m.g5)().filter((e=>void 0===e.enabled||e.enabled(this.currentView,this.dirContents,this.currentFolder))).toSorted(((e,t)=>e.order-t.order));return e},summary(){const e=this.dirContents.length-this.dirContentsFiltered.length;return kt(this.dirContentsFiltered,e)}},watch:{pageHeading(){document.title=`${this.pageHeading} - ${(0,E.F)().theming?.name??"Nextcloud"}`},showCustomEmptyView(e){e&&this.$nextTick((()=>{const e=this.$refs.customEmptyView;this.currentView.emptyView(e)}))},currentView(e,t){e?.id!==t?.id&&(j.debug("View changed",{newView:e,oldView:t}),this.selectionStore.reset(),this.fetchContent())},directory(e,t){j.debug("Directory changed",{newDir:e,oldDir:t}),this.selectionStore.reset(),window.OCA.Files.Sidebar?.close&&window.OCA.Files.Sidebar.close(),this.fetchContent();const s=this.$refs?.filesListVirtual;s?.$el&&(s.$el.scrollTop=0)},dirContents(e){j.debug("Directory contents changed",{view:this.currentView,folder:this.currentFolder,contents:e}),(0,U.Ic)("files:list:updated",{view:this.currentView,folder:this.currentFolder,contents:e}),this.filterDirContent()}},async mounted(){(0,U.B1)("files:node:deleted",this.onNodeDeleted),(0,U.B1)("files:node:updated",this.onUpdatedNode),(0,U.B1)("files:config:updated",this.fetchContent),(0,U.B1)("files:filters:changed",this.filterDirContent),await this.fetchContent(),this.fileId&&(this.dirContents.find((e=>e.fileid.toString()===this.fileId.toString()))||this.currentFolder.fileid.toString()===this.fileId.toString()||(0,c.Qg)((0,u.Tl)("files","The file could not be found")))},unmounted(){(0,U.al)("files:node:deleted",this.onNodeDeleted),(0,U.al)("files:node:updated",this.onUpdatedNode),(0,U.al)("files:config:updated",this.fetchContent)},methods:{async fetchContent(){this.loading=!0,this.error=null;const e=this.directory,t=this.currentView;if(t){this.promise&&"cancel"in this.promise&&(this.promise.cancel(),j.debug("Cancelled previous ongoing fetch")),this.promise=t.getContents(e);try{const{folder:s,contents:i}=await this.promise;j.debug("Fetched contents",{dir:e,folder:s,contents:i}),this.filesStore.updateNodes(i),this.$set(s,"_children",i.map((e=>e.source))),"/"===e?this.filesStore.setRoot({service:t.id,root:s}):s.fileid?(this.filesStore.updateNodes([s]),this.pathsStore.addPath({service:t.id,source:s.source,path:e})):j.fatal("Invalid root folder returned",{dir:e,folder:s,currentView:t}),i.filter((e=>"folder"===e.type)).forEach((s=>{this.pathsStore.addPath({service:t.id,source:s.source,path:(0,d.join)(e,s.basename)})}))}catch(e){j.error("Error while fetching content",{error:e}),this.error=function(e){if(e instanceof Error){if(function(e){return e instanceof Error&&"status"in e&&"response"in e}(e)){const t=e.status||e.response?.status||0;if([400,404,405].includes(t))return(0,u.t)("files","Folder not found");if(403===t)return(0,u.t)("files","This operation is forbidden");if(500===t)return(0,u.t)("files","This directory is unavailable, please check the logs or contact the administrator");if(503===t)return(0,u.t)("files","Storage is temporarily not available")}return(0,u.t)("files","Unexpected error: {error}",{error:e.message})}return(0,u.t)("files","Unknown error")}(e)}finally{this.loading=!1}}else j.debug("The current view doesn't exists or is not ready.",{currentView:t})},onNodeDeleted(e){e.fileid&&e.fileid===this.fileId&&(e.fileid===this.currentFolder?.fileid?window.OCP.Files.Router.goToRoute(null,{view:this.currentView.id},{dir:this.currentFolder?.dirname??"/"}):window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:void 0},{...this.$route.query,openfile:void 0}))},onUpload(e){(0,d.dirname)(e.source)===this.currentFolder.source&&this.fetchContent()},async onUploadFail(e){const t=e.response?.status||0;if(e.status!==ot.S.CANCELLED)if(507!==t)if(404!==t&&409!==t)if(403!==t){if("string"==typeof e.response?.data)try{const t=(new DOMParser).parseFromString(e.response.data,"text/xml"),s=t.getElementsByTagName("s:message")[0]?.textContent??"";if(""!==s.trim())return void(0,c.Qg)((0,u.Tl)("files","Error during upload: {message}",{message:s}))}catch(e){j.error("Could not parse message",{error:e})}0===t?(0,c.Qg)((0,u.Tl)("files","Unknown error during upload")):(0,c.Qg)((0,u.Tl)("files","Error during upload, status code {status}",{status:t}))}else(0,c.Qg)((0,u.Tl)("files","Operation is blocked by access control"));else(0,c.Qg)((0,u.Tl)("files","Target folder does not exist any more"));else(0,c.Qg)((0,u.Tl)("files","Not enough free space"));else(0,c.I9)((0,u.Tl)("files","Upload was cancelled by user"))},onUpdatedNode(e){e?.fileid===this.currentFolder?.fileid&&this.fetchContent()},openSharingSidebar(){this.currentFolder?(window?.OCA?.Files?.Sidebar?.setActiveTab&&window.OCA.Files.Sidebar.setActiveTab("sharing"),Z.exec(this.currentFolder,this.currentView,this.currentFolder.path)):j.debug("No current folder found for opening sharing sidebar")},toggleGridView(){this.userConfigStore.update("grid_view",!this.userConfig.grid_view)},filterDirContent(){let e=this.dirContents;for(const t of this.filtersStore.sortedFilters)e=t.filter(e);this.dirContentsFiltered=e},actionDisplayName(e){let t=e.id;try{t=e.displayName(this.currentView)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}return t},async execFileListAction(e){this.loadingAction=e.id;const t=this.actionDisplayName(e);try{const s=await e.exec(this.source,this.dirContents,this.currentDir);if(null==s)return;if(s)return void(0,c.Te)((0,u.Tl)("files",'"{displayName}" action executed successfully',{displayName:t}));(0,c.Qg)((0,u.Tl)("files",'"{displayName}" action failed',{displayName:t}))}catch(s){j.error("Error while executing action",{action:e,error:s}),(0,c.Qg)((0,u.Tl)("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loadingAction=null}}}}),bn=An;var yn=i(44671),Cn={};Cn.styleTagTransform=Le(),Cn.setAttributes=_e(),Cn.insert=Ce().bind(null,"head"),Cn.domAPI=be(),Cn.insertStyleElement=Te(),we()(yn.A,Cn),yn.A&&yn.A.locals&&yn.A.locals;var kn=(0,ae.A)(bn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppContent",{attrs:{"page-heading":e.pageHeading,"data-cy-files-content":""}},[t("div",{staticClass:"files-list__header",class:{"files-list__header--public":e.isPublic}},[t("BreadCrumbs",{attrs:{path:e.directory},on:{reload:e.fetchContent},scopedSlots:e._u([{key:"actions",fn:function(){return[e.canShare&&e.fileListWidth>=512?t("NcButton",{staticClass:"files-list__header-share-button",class:{"files-list__header-share-button--shared":e.shareButtonType},attrs:{"aria-label":e.shareButtonLabel,title:e.shareButtonLabel,type:"tertiary"},on:{click:e.openSharingSidebar},scopedSlots:e._u([{key:"icon",fn:function(){return[e.shareButtonType===e.ShareType.Link?t("LinkIcon"):t("AccountPlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4106306959)}):e._e(),e._v(" "),e.canUpload&&!e.isQuotaExceeded&&e.currentFolder?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):e._e()]},proxy:!0}])}),e._v(" "),e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):e._e(),e._v(" "),t("NcActions",{staticClass:"files-list__header-actions",attrs:{inline:1,type:"tertiary","force-name":""}},e._l(e.enabledFileListActions,(function(s){return t("NcActionButton",{key:s.id,attrs:{disabled:!!e.loadingAction,"data-cy-files-list-action":s.id,"close-after-click":""},on:{click:function(t){return e.execFileListAction(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingAction===s.id?t("NcLoadingIcon",{attrs:{size:18}}):void 0!==s.iconSvgInline&&e.currentView?t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.currentView)}}):e._e()]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])})),1),e._v(" "),e.fileListWidth>=512&&e.enableGridView?t("NcButton",{staticClass:"files-list__header-grid-button",attrs:{"aria-label":e.gridViewButtonLabel,title:e.gridViewButtonLabel,type:"tertiary"},on:{click:e.toggleGridView},scopedSlots:e._u([{key:"icon",fn:function(){return[e.userConfig.grid_view?t("ListViewIcon"):t("ViewGridIcon")]},proxy:!0}],null,!1,1682960703)}):e._e()],1),e._v(" "),!e.loading&&e.canUpload&&e.currentFolder?t("DragAndDropNotice",{attrs:{"current-folder":e.currentFolder}}):e._e(),e._v(" "),e.loading&&!e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,name:e.t("files","Loading current folder")}}):!e.loading&&e.isEmptyDir&&e.currentFolder&&e.currentView?[t("div",{staticClass:"files-list__before"},e._l(e.headers,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})})),1),e._v(" "),e.error?t("NcEmptyContent",{attrs:{name:e.error,"data-cy-files-content-error":""},scopedSlots:e._u([{key:"action",fn:function(){return[t("NcButton",{attrs:{type:"secondary"},on:{click:e.fetchContent},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconReload",{attrs:{size:20}})]},proxy:!0}],null,!1,3448385010)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Retry"))+"\n\t\t\t\t")])]},proxy:!0},{key:"icon",fn:function(){return[t("IconAlertCircleOutline")]},proxy:!0}],null,!1,2673163798)}):e.currentView?.emptyView?t("div",{staticClass:"files-list__empty-view-wrapper"},[t("div",{ref:"customEmptyView"})]):t("NcEmptyContent",{attrs:{name:e.currentView?.emptyTitle||e.t("files","No files in here"),description:e.currentView?.emptyCaption||e.t("files","Upload some content or sync with your devices!"),"data-cy-files-content-empty":""},scopedSlots:e._u(["/"!==e.directory?{key:"action",fn:function(){return[e.canUpload&&!e.isQuotaExceeded?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):t("NcButton",{attrs:{to:e.toPreviousDir,type:"primary"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Go back"))+"\n\t\t\t\t")])]},proxy:!0}:null,{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:e.currentView.icon}})]},proxy:!0}],null,!0)})]:t("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,nodes:e.dirContentsSorted,summary:e.summary}})],2)}),[],!1,null,"66f12ae6",null);const _n=kn.exports,xn=(0,o.pM)({name:"FilesApp",components:{NcContent:ie.A,FilesList:_n,Navigation:nt},setup:()=>({isPublic:(0,$.f)()})}),Tn=(0,ae.A)(xn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcContent",{attrs:{"app-name":"files"}},[e.isPublic?e._e():t("Navigation"),e._v(" "),t("FilesList",{attrs:{"is-public":e.isPublic}})],1)}),[],!1,null,null,null).exports;var Sn=i(82490),Ln=i(40173);o.Ay.use(Ln.Ay);const Nn=Ln.Ay.prototype.push;Ln.Ay.prototype.push=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Nn.call(this,...t):Nn.call(this,t[0]).catch(Un)};const Fn=Ln.Ay.prototype.replace;function Un(e){if(!(0,Ln.Pq)(e,Ln.$c.duplicated))throw e;j.debug("Ignoring duplicated navigation from vue-router",{error:e})}Ln.Ay.prototype.replace=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Fn.call(this,...t):Fn.call(this,t[0]).catch(Un)};const En=new Ln.Ay({mode:"history",base:(0,T.Jv)("/apps/files"),linkActiveClass:"active",routes:[{path:"/",redirect:{name:"filelist",params:{view:"files"}}},{path:"/:view/:fileid(\\d+)?",name:"filelist",props:!0}],stringifyQuery(e){const t=Sn.A.stringify(e).replace(/%2F/gim,"/");return t?"?"+t:""}});En.beforeEach(((e,t,s)=>{if(e.params?.parentIntercept)return delete e.params.parentIntercept,void s();const i=t.query?.dir||"/",n=e.query?.dir||"/";if(".."===(0,d.relative)(i,n)){const{currentView:t}=He(),{getNode:a}=Pt(),{getPath:o}=It();if(!t.value?.id)return j.error("No current view id found, cannot navigate to parent directory",{fromDir:i,toDir:n}),s();const r=o(t.value?.id,i);if(!r)return j.error("No source found for the parent directory",{fromDir:i,toDir:n}),s();const l=a(r)?.fileid;if(!l)return j.error("No fileid found for the parent directory",{fromDir:i,toDir:n,fromSource:r}),s();j.debug("Navigating back to parent directory",{fromDir:i,toDir:n,fileId:l}),s({name:"filelist",query:e.query,params:{...e.params,fileid:String(l),parentIntercept:"true"},replace:!0})}s()}));const In=En;class Pn{constructor(e){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"router",void 0),this.router=e}get name(){return this.router.currentRoute.name}get query(){return this.router.currentRoute.query||{}}get params(){return this.router.currentRoute.params||{}}get _router(){return this.router}goTo(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.router.push({path:e,replace:t})}goToRoute(e,t,s,i){return this.router.push({name:e,query:s,params:t,replace:i})}}function zn(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}if(i.nc=(0,n.aV)(),window.OCA.Files=window.OCA.Files??{},window.OCP.Files=window.OCP.Files??{},!window.OCP.Files.Router){const e=new Pn(In);Object.assign(window.OCP.Files,{Router:e})}o.Ay.use(a.R2),(0,l.C)("d",(()=>te(Z)),{stop:!0,prevent:!0}),(0,l.C)("F2",(()=>te(J)),{stop:!0,prevent:!0}),(0,l.C)("s",(()=>te(K)),{stop:!0,prevent:!0}),(0,l.C)("Delete",(()=>te(V)),{stop:!0,prevent:!0}),(0,l.C)("ArrowUp",(function(){const e=window.OCP.Files.Router?.params||{},t=window.OCP.Files.Router?.query||{},s=t?.dir||"/",i=(0,d.dirname)(s);j.debug("Navigating to parent directory",{parentDir:i}),window.OCP.Files.Router.goToRoute(null,{...e},{...t,dir:i})}),{stop:!0,prevent:!0,alt:!0}),(0,l.C)("v",(function(){const e=(0,se.O)(),t=e?.userConfig?.grid_view;j.debug("Toggling grid view",{old:t,new:!t}),e.update("grid_view",!t)}),{stop:!0,prevent:!0}),j.debug("Hotkeys registered");const Bn=new class{constructor(){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"_settings",void 0),this._settings=[],console.debug("OCA.Files.Settings initialized")}register(e){return this._settings.filter((t=>t.name===e.name)).length>0?(console.error("A setting with the same name is already registered"),!1):(this._settings.push(e),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Bn}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(e,t){let{el:s,open:i,close:n}=t;zn(this,"_close",void 0),zn(this,"_el",void 0),zn(this,"_name",void 0),zn(this,"_open",void 0),this._name=e,this._el=s,this._open=i,this._close=n,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(o.Ay.extend(Tn))({router:window.OCP.Files.Router._router,pinia:r()}).$mount("#content")},3619:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__row-actions-batch[data-v-c463105a]{flex:1 1 100% !important;max-width:100%}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CACA,cAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\tmax-width: 100%;\n}\n"],sourceRoot:""}]);const r=o},4511:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__column[data-v-06480c18]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-06480c18]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},4613:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".favorite-marker-icon[data-v-0b2a4155]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue"],names:[],mappings:"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.favorite-marker-icon {\n\tcolor: var(--color-favorite);\n\t// Override NcIconSvgWrapper defaults (clickable area)\n\tmin-width: unset !important;\n min-height: unset !important;\n\n\t:deep() {\n\t\tsvg {\n\t\t\t// We added a stroke for a11y so we must increase the size to include the stroke\n\t\t\twidth: 26px !important;\n\t\t\theight: 26px !important;\n\n\t\t\t// Override NcIconSvgWrapper defaults of 20px\n\t\t\tmax-width: unset !important;\n\t\t\tmax-height: unset !important;\n\n\t\t\t// Sow a border around the icon for better contrast\n\t\t\tpath {\n\t\t\t\tstroke: var(--color-main-background);\n\t\t\t\tstroke-width: 8px;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t\tpaint-order: stroke;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const r=o},7421:(e,t,s)=>{s.d(t,{O:()=>m});var i=s(21777),n=s(61338),a=s(32981),o=s(63814),r=s(65899),l=s(85471),d=s(65043);const c=(0,a.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1,show_mime_column:!0,show_dialog_file_extension:!0}),m=(0,r.nY)("userconfig",(()=>{const e=(0,l.KR)({...c});return(0,n.B1)("files:config:updated",(t=>{let{key:s,value:i}=t;return function(t,s){(0,l.hZ)(e.value,t,s)}(s,i)})),{userConfig:e,update:async function(e,t){null!==(0,i.HW)()&&await d.Ay.put((0,o.Jv)("/apps/files/api/v1/config/{key}",{key:e}),{value:t}),(0,n.Ic)("files:config:updated",{key:e,value:t})}}}))},11820:(e,t,s)=>{s.d(t,{A:()=>i.N});var i=s(81199)},18789:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"tr[data-v-e916ded0]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-e916ded0]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableFooter.vue"],names:[],mappings:"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tmargin-bottom: var(--body-container-margin);\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n\n\ttd {\n\t\tuser-select: none;\n\t\t// Make sure the cell colors don't apply to column headers\n\t\tcolor: var(--color-text-maxcontrast) !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},19372:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__row-action[data-v-7f0265e5]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-7f0265e5]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-7f0265e5] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA",sourcesContent:["\n.files-list__row-action {\n\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\n\t// inline icons can have clickable area size so they still fit into the row\n\t&.files-list__row-action--inline {\n\t\t--max-icon-size: var(--default-clickable-area);\n\t}\n\n\t// Some icons exceed the default size so we need to enforce a max width and height\n\t.files-list__row-action-icon :deep(svg) {\n\t\tmax-height: var(--max-icon-size) !important;\n\t\tmax-width: var(--max-icon-size) !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},20040:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA",sourcesContent:['\n// Allow right click to define the position of the menu\n// only if defined\nmain.app-content[style*="mouse-pos-x"] .v-popper__popper {\n\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\n\n\t// If the menu is too close to the bottom, we move it up\n\t&[data-popper-placement="top"] {\n\t\t// 34px added to align with the top of the cursor\n\t\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\n\t}\n\t// Hide arrow if floating\n\t.v-popper__arrow-container {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const r=o},20768:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropPreview.vue"],names:[],mappings:"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n$size: 32px;\n$stack-shift: 6px;\n\n.files-list-drag-image {\n\tposition: absolute;\n\ttop: -9999px;\n\tinset-inline-start: -9999px;\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-items: center;\n\theight: 44px;\n\tpadding: 6px 12px;\n\tbackground: var(--color-main-background);\n\n\t&__icon,\n\t.files-list__row-icon {\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tborder-radius: var(--border-radius);\n\t}\n\n\t&__icon {\n\t\toverflow: visible;\n\t\tmargin-inline-end: 12px;\n\n\t\timg {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t}\n\n\t\t.material-design-icon {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t&.folder-icon {\n\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Previews container\n\t\t> span {\n\t\t\tdisplay: flex;\n\n\t\t\t// Stack effect if more than one element\n\t\t\t.files-list__row-icon + .files-list__row-icon {\n\t\t\t\tmargin-top: $stack-shift;\n\t\t\t\tmargin-inline-start: $stack-shift - $size;\n\t\t\t\t& + .files-list__row-icon {\n\t\t\t\t\tmargin-top: $stack-shift * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we have manually clone the preview,\n\t\t\t// let's hide any fallback icons\n\t\t\t&:not(:empty) + * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},24146:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"button.files-list__row-name-link[data-v-08f77d70]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-08f77d70]:active{background-color:unset !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryName.vue"],names:[],mappings:"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA",sourcesContent:["\nbutton.files-list__row-name-link {\n\tbackground-color: unset;\n\tborder: none;\n\tfont-weight: normal;\n\n\t&:active {\n\t\t// No active styles - handled by the row entry\n\t\tbackground-color: unset !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},28665:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".file-list-filters[data-v-3d6bff7e]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-3d6bff7e]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-3d6bff7e]{flex:0 1 fit-content}.file-list-filters__active[data-v-3d6bff7e]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FileListFilters.vue"],names:[],mappings:"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA",sourcesContent:["\n.file-list-filters {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n\n\t&__filter {\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tjustify-content: start;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\n\t\t> * {\n\t\t\tflex: 0 1 fit-content;\n\t\t}\n\t}\n\n\t&__active {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\t}\n}\n"],sourceRoot:""}]);const r=o},31643:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__breadcrumbs[data-v-7b525302]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-7b525302] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-7b525302]{flex-direction:column !important;align-items:flex-start !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA",sourcesContent:["\n.files-list__breadcrumbs {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\theight: 100%;\n\tmargin-block: 0;\n\tmargin-inline: 10px;\n\tmin-width: 0;\n\n\t:deep() {\n\t\ta {\n\t\t\tcursor: pointer !important;\n\t\t}\n\t}\n\n\t&--with-progress {\n\t\tflex-direction: column !important;\n\t\talign-items: flex-start !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},35613:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__column-sort-button[data-v-c3dbd7e0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-c3dbd7e0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-c3dbd7e0]{opacity:1}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderButton.vue"],names:[],mappings:"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\n\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\n\n\t&-text {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t}\n\n\t&-icon {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\topacity: 0;\n\t\ttransition: opacity var(--animation-quick);\n\t\tinset-inline-start: -10px;\n\t}\n\n\t&--size &-icon {\n\t\tinset-inline-start: 10px;\n\t}\n\n\t&--active &-icon,\n\t&:hover &-icon,\n\t&:focus &-icon,\n\t&:active &-icon {\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const r=o},35810:(e,t,s)=>{s.d(t,{Al:()=>i.r,By:()=>p,CP:()=>i.k,Dw:()=>je,E6:()=>A,H4:()=>i.c,KT:()=>w,L3:()=>Re,PY:()=>i.b,Q$:()=>i.e,R3:()=>i.n,Ss:()=>de,VL:()=>i.l,VP:()=>S,VX:()=>i.j,ZH:()=>i.q,a7:()=>d,aX:()=>i.P,bP:()=>i.N,bh:()=>T,cZ:()=>Oe,di:()=>v,g5:()=>f,hY:()=>g,lJ:()=>i.d,m1:()=>Ve,m9:()=>m,nF:()=>h,pt:()=>i.F,qK:()=>u,sR:()=>Me,ur:()=>_,v7:()=>C,vd:()=>i.s,zI:()=>i.t});var i=s(68251),n=s(87485),a=s(43627),o=s(53334),r=s(380),l=s(65606),d=(e=>(e[e.UploadFromDevice=0]="UploadFromDevice",e[e.CreateNew=1]="CreateNew",e[e.Other=2]="Other",e))(d||{});class c{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):i.o.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}var m=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(m||{});class g{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get destructive(){return this._action.destructive}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if(void 0!==e.destructive&&"boolean"!=typeof e.destructive)throw new Error("Invalid destructive flag");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(m).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const u=function(){return void 0===window._nc_fileactions&&(window._nc_fileactions=[],i.o.debug("FileActions initialized")),window._nc_fileactions},f=()=>(void 0===window._nc_filelistactions&&(window._nc_filelistactions=[]),window._nc_filelistactions),p=function(){return void 0===window._nc_filelistheader&&(window._nc_filelistheader=[],i.o.debug("FileListHeaders initialized")),window._nc_filelistheader};var h=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(h||{});class v extends Error{constructor(e){super(`Invalid ${e.reason} '${e.segment}' in filename '${e.filename}'`,{cause:e})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function w(e){const t=(0,n.F)().files,s=t.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const t of s)if(e.includes(t))throw new v({segment:t,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(t.forbidden_filenames??[".htaccess"]).includes(e))throw new v({filename:e,segment:e,reason:"reserved name"});const i=e.indexOf(".",1),a=e.substring(0,-1===i?void 0:i);if((t.forbidden_filename_basenames??[]).includes(a))throw new v({filename:e,segment:a,reason:"reserved name"});const o=t.forbidden_filename_extensions??[".part",".filepart"];for(const t of o)if(e.length>t.length&&e.endsWith(t))throw new v({segment:t,reason:"extension",filename:e})}function A(e,t,s){const i={suffix:e=>`(${e})`,ignoreFileExtension:!1,...s};let n=e,o=1;for(;t.includes(n);){const t=i.ignoreFileExtension?"":(0,a.extname)(e);n=`${(0,a.basename)(e,t)} ${i.suffix(o++)}${t}`}return n}const b=["B","KB","MB","GB","TB","PB"],y=["B","KiB","MiB","GiB","TiB","PiB"];function C(e,t=!1,s=!1,i=!1){s=s&&!i,"string"==typeof e&&(e=Number(e));let n=e>0?Math.floor(Math.log(e)/Math.log(i?1e3:1024)):0;n=Math.min((s?y.length:b.length)-1,n);const a=s?y[n]:b[n];let r=(e/Math.pow(i?1e3:1024,n)).toFixed(1);return!0===t&&0===n?("0.0"!==r?"< 1 ":"0 ")+(s?y[1]:b[1]):(r=n<2?parseFloat(r).toFixed(0):parseFloat(r).toLocaleString((0,o.lO)()),r+" "+a)}function k(e){return e instanceof Date?e.toISOString():String(e)}function _(e,t={}){const s={sortingMode:"basename",sortingOrder:"asc",...t};return function(e,t,s){s=s??[];const i=(t=t??[e=>e]).map(((e,t)=>"asc"===(s[t]??"asc")?1:-1)),n=Intl.Collator([(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"});return[...e].sort(((e,s)=>{for(const[a,o]of t.entries()){const t=n.compare(k(o(e)),k(o(s)));if(0!==t)return t*i[a]}return 0}))}(e,[...s.sortFavoritesFirst?[e=>1!==e.attributes?.favorite]:[],...s.sortFoldersFirst?[e=>"folder"!==e.type]:[],..."basename"!==s.sortingMode?[e=>e[s.sortingMode]]:[],e=>{return(t=e.displayname||e.attributes?.displayname||e.basename).lastIndexOf(".")>0?t.slice(0,t.lastIndexOf(".")):t;var t},e=>e.basename],[...s.sortFavoritesFirst?["asc"]:[],...s.sortFoldersFirst?["asc"]:[],..."mtime"===s.sortingMode?["asc"===s.sortingOrder?"desc":"asc"]:[],..."mtime"!==s.sortingMode&&"basename"!==s.sortingMode?[s.sortingOrder]:[],s.sortingOrder,s.sortingOrder])}class x extends r.m{_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e),this.dispatchTypedEvent("update",new CustomEvent("update"))}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&(this._views.splice(t,1),this.dispatchTypedEvent("update",new CustomEvent("update")))}setActive(e){this._currentView=e;const t=new CustomEvent("updateActive",{detail:e});this.dispatchTypedEvent("updateActive",t)}get active(){return this._currentView}get views(){return this._views}}const T=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new x,i.o.debug("Navigation service initialized")),window._nc_navigation};class S{_column;constructor(e){L(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const L=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};function N(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,U,E={},I={};function P(){return F||(F=1,function(e){const t=":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",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",i=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const i=Object.keys(t),n=i.length;for(let a=0;a<n;a++)e[i[a]]="strict"===s?[t[i[a]]]:t[i[a]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==i.exec(e))},e.getAllMatches=function(e,t){const s=[];let i=t.exec(e);for(;i;){const n=[];n.startIndex=t.lastIndex-i[0].length;const a=i.length;for(let e=0;e<a;e++)n.push(i[e]);s.push(n),i=t.exec(e)}return s},e.nameRegexp=s}(I)),I}function z(){if(U)return E;U=1;const e=P(),t={allowBooleanAttributes:!1,unpairedTags:[]};function s(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function i(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const i=e.substr(s,t-s);if(t>5&&"xml"===i)return m("InvalidXml","XML declaration allowed only at the start of the document.",u(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function n(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}E.validate=function(a,o){o=Object.assign({},t,o);const l=[];let g=!1,f=!1;"\ufeff"===a[0]&&(a=a.substr(1));for(let t=0;t<a.length;t++)if("<"===a[t]&&"?"===a[t+1]){if(t+=2,t=i(a,t),t.err)return t}else{if("<"!==a[t]){if(s(a[t]))continue;return m("InvalidChar","char '"+a[t]+"' is not expected.",u(a,t))}{let h=t;if(t++,"!"===a[t]){t=n(a,t);continue}{let v=!1;"/"===a[t]&&(v=!0,t++);let w="";for(;t<a.length&&">"!==a[t]&&" "!==a[t]&&"\t"!==a[t]&&"\n"!==a[t]&&"\r"!==a[t];t++)w+=a[t];if(w=w.trim(),"/"===w[w.length-1]&&(w=w.substring(0,w.length-1),t--),p=w,!e.isName(p)){let e;return e=0===w.trim().length?"Invalid space after '<'.":"Tag '"+w+"' is an invalid name.",m("InvalidTag",e,u(a,t))}const A=r(a,t);if(!1===A)return m("InvalidAttr","Attributes for '"+w+"' have open quote.",u(a,t));let b=A.value;if(t=A.index,"/"===b[b.length-1]){const e=t-b.length;b=b.substring(0,b.length-1);const s=d(b,o);if(!0!==s)return m(s.err.code,s.err.msg,u(a,e+s.err.line));g=!0}else if(v){if(!A.tagClosed)return m("InvalidTag","Closing tag '"+w+"' doesn't have proper closing.",u(a,t));if(b.trim().length>0)return m("InvalidTag","Closing tag '"+w+"' can't have attributes or invalid starting.",u(a,h));if(0===l.length)return m("InvalidTag","Closing tag '"+w+"' has not been opened.",u(a,h));{const e=l.pop();if(w!==e.tagName){let t=u(a,e.tagStartPos);return m("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+t.line+", col "+t.col+") instead of closing tag '"+w+"'.",u(a,h))}0==l.length&&(f=!0)}}else{const e=d(b,o);if(!0!==e)return m(e.err.code,e.err.msg,u(a,t-b.length+e.err.line));if(!0===f)return m("InvalidXml","Multiple possible root nodes found.",u(a,t));-1!==o.unpairedTags.indexOf(w)||l.push({tagName:w,tagStartPos:h}),g=!0}for(t++;t<a.length;t++)if("<"===a[t]){if("!"===a[t+1]){t++,t=n(a,t);continue}if("?"!==a[t+1])break;if(t=i(a,++t),t.err)return t}else if("&"===a[t]){const e=c(a,t);if(-1==e)return m("InvalidChar","char '&' is not expected.",u(a,t));t=e}else if(!0===f&&!s(a[t]))return m("InvalidXml","Extra text at the end",u(a,t));"<"===a[t]&&t--}}}var p;return g?1==l.length?m("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",u(a,l[0].tagStartPos)):!(l.length>0)||m("InvalidXml","Invalid '"+JSON.stringify(l.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):m("InvalidXml","Start tag expected.",1)};const a='"',o="'";function r(e,t){let s="",i="",n=!1;for(;t<e.length;t++){if(e[t]===a||e[t]===o)""===i?i=e[t]:i!==e[t]||(i="");else if(">"===e[t]&&""===i){n=!0;break}s+=e[t]}return""===i&&{value:s,index:t,tagClosed:n}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,s){const i=e.getAllMatches(t,l),n={};for(let e=0;e<i.length;e++){if(0===i[e][1].length)return m("InvalidAttr","Attribute '"+i[e][2]+"' has no space in starting.",f(i[e]));if(void 0!==i[e][3]&&void 0===i[e][4])return m("InvalidAttr","Attribute '"+i[e][2]+"' is without value.",f(i[e]));if(void 0===i[e][3]&&!s.allowBooleanAttributes)return m("InvalidAttr","boolean attribute '"+i[e][2]+"' is not allowed.",f(i[e]));const t=i[e][2];if(!g(t))return m("InvalidAttr","Attribute '"+t+"' is an invalid name.",f(i[e]));if(n.hasOwnProperty(t))return m("InvalidAttr","Attribute '"+t+"' is repeated.",f(i[e]));n[t]=1}return!0}function c(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function m(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function g(t){return e.isName(t)}function u(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function f(e){return e.startIndex+e[1].length}return E}var B,D,R,O,j,M,V,$,W,H,q,Y={};function G(){return W?$:(W=1,$=function(e){return"function"==typeof e?e:Array.isArray(e)?t=>{for(const s of e){if("string"==typeof s&&t===s)return!0;if(s instanceof RegExp&&s.test(t))return!0}}:()=>!1})}var K,Q,J,X,Z,ee,te,se,ie,ne={};function ae(){if(K)return ne;function e(n,a,o){let r;const l={};for(let d=0;d<n.length;d++){const c=n[d],m=t(c);let g="";if(g=void 0===o?m:o+"."+m,m===a.textNodeName)void 0===r?r=c[m]:r+=""+c[m];else{if(void 0===m)continue;if(c[m]){let t=e(c[m],a,g);const n=i(t,a);c[":@"]?s(t,c[":@"],g,a):1!==Object.keys(t).length||void 0===t[a.textNodeName]||a.alwaysCreateTextNode?0===Object.keys(t).length&&(a.alwaysCreateTextNode?t[a.textNodeName]="":t=""):t=t[a.textNodeName],void 0!==l[m]&&l.hasOwnProperty(m)?(Array.isArray(l[m])||(l[m]=[l[m]]),l[m].push(t)):a.isArray(m,g,n)?l[m]=[t]:l[m]=t}}}return"string"==typeof r?r.length>0&&(l[a.textNodeName]=r):void 0!==r&&(l[a.textNodeName]=r),l}function t(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function s(e,t,s,i){if(t){const n=Object.keys(t),a=n.length;for(let o=0;o<a;o++){const a=n[o];i.isArray(a,s+"."+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function i(e,t){const{textNodeName:s}=t,i=Object.keys(e).length;return 0===i||!(1!==i||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}return K=1,ne.prettify=function(t,s){return e(t,s)},ne}function oe(){if(J)return Q;J=1;const{buildOptions:e}=function(){if(B)return Y;B=1;const e={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(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};return Y.buildOptions=function(t){return Object.assign({},e,t)},Y.defaultOptions=e,Y}(),t=function(){if(q)return H;q=1;const e=P(),t=R?D:(R=1,D=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}}),s=function(){if(j)return O;j=1;const e=P();function t(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const i=e[t++];let n="";for(;t<e.length&&e[t]!==i;t++)n+=e[t];return[s,n,t]}function s(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function i(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function n(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function a(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function o(t){if(e.isName(t))return t;throw new Error(`Invalid entity name ${t}`)}return O=function(e,r){const l={};if("O"!==e[r+3]||"C"!==e[r+4]||"T"!==e[r+5]||"Y"!==e[r+6]||"P"!==e[r+7]||"E"!==e[r+8])throw new Error("Invalid Tag instead of DOCTYPE");{r+=9;let d=1,c=!1,m=!1,g="";for(;r<e.length;r++)if("<"!==e[r]||m)if(">"===e[r]){if(m?"-"===e[r-1]&&"-"===e[r-2]&&(m=!1,d--):d--,0===d)break}else"["===e[r]?c=!0:g+=e[r];else{if(c&&s(e,r)){let s,i;r+=7,[s,i,r]=t(e,r+1),-1===i.indexOf("&")&&(l[o(s)]={regx:RegExp(`&${s};`,"g"),val:i})}else c&&i(e,r)||c&&n(e,r)?r+=8:c&&a(e,r)?r+=9:m=!0;d++,g=""}if(0!==d)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:r}}}(),i=function(){if(V)return M;V=1;const e=/^[-+]?0x[a-fA-F0-9]+$/,t=/^([\-\+])?(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 s={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return M=function(i,n={}){if(n=Object.assign({},s,n),!i||"string"!=typeof i)return i;let a=i.trim();if(void 0!==n.skipLike&&n.skipLike.test(a))return i;if(n.hex&&e.test(a))return Number.parseInt(a,16);{const e=t.exec(a);if(e){const t=e[1],s=e[2];let r=(o=e[3])&&-1!==o.indexOf(".")?("."===(o=o.replace(/0+$/,""))?o="0":"."===o[0]?o="0"+o:"."===o[o.length-1]&&(o=o.substr(0,o.length-1)),o):o;const l=e[4]||e[6];if(!n.leadingZeros&&s.length>0&&t&&"."!==a[2])return i;if(!n.leadingZeros&&s.length>0&&!t&&"."!==a[1])return i;{const e=Number(a),o=""+e;return-1!==o.search(/[eE]/)||l?n.eNotation?e:i:-1!==a.indexOf(".")?"0"===o&&""===r||o===r||t&&o==="-"+r?e:i:s?r===o||t+r===o?e:i:a===o||a===t+o?e:i}}return i}var o}}(),n=G();function a(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const i=t[s];this.lastEntities[i]={regex:new RegExp("&"+i+";","g"),val:e[i]}}}function o(e,t,s,i,n,a,o){if(void 0!==e&&(this.options.trimValues&&!i&&(e=e.trim()),e.length>0)){o||(e=this.replaceEntitiesValue(e));const i=this.options.tagValueProcessor(t,e,s,n,a);return null==i?e:typeof i!=typeof e||i!==e?i:this.options.trimValues||e.trim()===e?w(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function r(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function d(t,s,i){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const i=e.getAllMatches(t,l),n=i.length,a={};for(let e=0;e<n;e++){const t=this.resolveNameSpace(i[e][1]);if(this.ignoreAttributesFn(t,s))continue;let n=i[e][4],o=this.options.attributeNamePrefix+t;if(t.length)if(this.options.transformAttributeName&&(o=this.options.transformAttributeName(o)),"__proto__"===o&&(o="#__proto__"),void 0!==n){this.options.trimValues&&(n=n.trim()),n=this.replaceEntitiesValue(n);const e=this.options.attributeValueProcessor(t,n,s);a[o]=null==e?n:typeof e!=typeof n||e!==n?e:w(n,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[o]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const c=function(e){e=e.replace(/\r\n?/g,"\n");const i=new t("!xml");let n=i,a="",o="";for(let r=0;r<e.length;r++)if("<"===e[r])if("/"===e[r+1]){const t=p(e,">",r,"Closing Tag is not closed.");let s=e.substring(r+2,t).trim();if(this.options.removeNSPrefix){const e=s.indexOf(":");-1!==e&&(s=s.substr(e+1))}this.options.transformTagName&&(s=this.options.transformTagName(s)),n&&(a=this.saveTextToParentTag(a,n,o));const i=o.substring(o.lastIndexOf(".")+1);if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: </${s}>`);let l=0;i&&-1!==this.options.unpairedTags.indexOf(i)?(l=o.lastIndexOf(".",o.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=o.lastIndexOf("."),o=o.substring(0,l),n=this.tagsNodeStack.pop(),a="",r=t}else if("?"===e[r+1]){let s=h(e,r,!1,"?>");if(!s)throw new Error("Pi Tag is not closed.");if(a=this.saveTextToParentTag(a,n,o),this.options.ignoreDeclaration&&"?xml"===s.tagName||this.options.ignorePiTags);else{const e=new t(s.tagName);e.add(this.options.textNodeName,""),s.tagName!==s.tagExp&&s.attrExpPresent&&(e[":@"]=this.buildAttributesMap(s.tagExp,o,s.tagName)),this.addChild(n,e,o)}r=s.closeIndex+1}else if("!--"===e.substr(r+1,3)){const t=p(e,"--\x3e",r+4,"Comment is not closed.");if(this.options.commentPropName){const s=e.substring(r+4,t-2);a=this.saveTextToParentTag(a,n,o),n.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=t}else if("!D"===e.substr(r+1,2)){const t=s(e,r);this.docTypeEntities=t.entities,r=t.i}else if("!["===e.substr(r+1,2)){const t=p(e,"]]>",r,"CDATA is not closed.")-2,s=e.substring(r+9,t);a=this.saveTextToParentTag(a,n,o);let i=this.parseTextData(s,n.tagname,o,!0,!1,!0,!0);null==i&&(i=""),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):n.add(this.options.textNodeName,i),r=t+2}else{let s=h(e,r,this.options.removeNSPrefix),l=s.tagName;const d=s.rawTagName;let c=s.tagExp,m=s.attrExpPresent,g=s.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),n&&a&&"!xml"!==n.tagname&&(a=this.saveTextToParentTag(a,n,o,!1));const u=n;if(u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(n=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),l!==i.tagname&&(o+=o?"."+l:l),this.isItStopNode(this.options.stopNodes,o,l)){let i="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),c=l):c=c.substr(0,c.length-1),r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))r=s.closeIndex;else{const t=this.readStopNodeData(e,d,g+1);if(!t)throw new Error(`Unexpected end of ${d}`);r=t.i,i=t.tagContent}const a=new t(l);l!==c&&m&&(a[":@"]=this.buildAttributesMap(c,o,l)),i&&(i=this.parseTextData(i,l,o,!0,m,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),a.add(this.options.textNodeName,i),this.addChild(n,a,o)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),c=l):c=c.substr(0,c.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const e=new t(l);l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,o,l)),this.addChild(n,e,o),o=o.substr(0,o.lastIndexOf("."))}else{const e=new t(l);this.tagsNodeStack.push(n),l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,o,l)),this.addChild(n,e,o),n=e}a="",r=g}}else a+=e[r];return i.child};function m(e,t,s){const i=this.options.updateTag(t.tagname,s,t[":@"]);!1===i||("string"==typeof i?(t.tagname=i,e.addChild(t)):e.addChild(t))}const g=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function u(e,t,s,i){return e&&(void 0===i&&(i=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,i))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function f(e,t,s){const i="*."+s;for(const s in e){const n=e[s];if(i===n||t===n)return!0}return!1}function p(e,t,s,i){const n=e.indexOf(t,s);if(-1===n)throw new Error(i);return n+t.length-1}function h(e,t,s,i=">"){const n=function(e,t,s=">"){let i,n="";for(let a=t;a<e.length;a++){let t=e[a];if(i)t===i&&(i="");else if('"'===t||"'"===t)i=t;else if(t===s[0]){if(!s[1])return{data:n,index:a};if(e[a+1]===s[1])return{data:n,index:a}}else"\t"===t&&(t=" ");n+=t}}(e,t+1,i);if(!n)return;let a=n.data;const o=n.index,r=a.search(/\s/);let l=a,d=!0;-1!==r&&(l=a.substring(0,r),a=a.substring(r+1).trimStart());const c=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==n.data.substr(e+1))}return{tagName:l,tagExp:a,closeIndex:o,attrExpPresent:d,rawTagName:c}}function v(e,t,s){const i=s;let n=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const a=p(e,">",s,`${t} is not closed`);if(e.substring(s+2,a).trim()===t&&(n--,0===n))return{tagContent:e.substring(i,s),i:a};s=a}else if("?"===e[s+1])s=p(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=p(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=p(e,"]]>",s,"StopNode is not closed.")-2;else{const i=h(e,s,">");i&&((i&&i.tagName)===t&&"/"!==i.tagExp[i.tagExp.length-1]&&n++,s=i.closeIndex)}}function w(t,s,n){if(s&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&i(t,n)}return e.isExist(t)?t:""}return H=class{constructor(e){this.options=e,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:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=a,this.parseXml=c,this.parseTextData=o,this.resolveNameSpace=r,this.buildAttributesMap=d,this.isItStopNode=f,this.replaceEntitiesValue=g,this.readStopNodeData=v,this.saveTextToParentTag=u,this.addChild=m,this.ignoreAttributesFn=n(this.options.ignoreAttributes)}}}(),{prettify:s}=ae(),i=z();return Q=class{constructor(t){this.externalEntities={},this.options=e(t)}parse(e,n){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(n){!0===n&&(n={});const t=i.validate(e,n);if(!0!==t)throw Error(`${t.err.msg}:${t.err.line}:${t.err.col}`)}const a=new t(this.options);a.addExternalEntities(this.externalEntities);const o=a.parseXml(e);return this.options.preserveOrder||void 0===o?o:s(o,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}}function re(){if(Z)return X;function e(a,o,r,l){let d="",c=!1;for(let m=0;m<a.length;m++){const g=a[m],u=t(g);if(void 0===u)continue;let f="";if(f=0===r.length?u:`${r}.${u}`,u===o.textNodeName){let e=g[u];i(f,o)||(e=o.tagValueProcessor(u,e),e=n(e,o)),c&&(d+=l),d+=e,c=!1;continue}if(u===o.cdataPropName){c&&(d+=l),d+=`<![CDATA[${g[u][0][o.textNodeName]}]]>`,c=!1;continue}if(u===o.commentPropName){d+=l+`\x3c!--${g[u][0][o.textNodeName]}--\x3e`,c=!0;continue}if("?"===u[0]){const e=s(g[":@"],o),t="?xml"===u?"":l;let i=g[u][0][o.textNodeName];i=0!==i.length?" "+i:"",d+=t+`<${u}${i}${e}?>`,c=!0;continue}let p=l;""!==p&&(p+=o.indentBy);const h=l+`<${u}${s(g[":@"],o)}`,v=e(g[u],o,f,p);-1!==o.unpairedTags.indexOf(u)?o.suppressUnpairedNode?d+=h+">":d+=h+"/>":v&&0!==v.length||!o.suppressEmptyNode?v&&v.endsWith(">")?d+=h+`>${v}${l}</${u}>`:(d+=h+">",v&&""!==l&&(v.includes("/>")||v.includes("</"))?d+=l+o.indentBy+v+l:d+=v,d+=`</${u}>`):d+=h+"/>",c=!0}return d}function t(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const i=t[s];if(e.hasOwnProperty(i)&&":@"!==i)return i}}function s(e,t){let s="";if(e&&!t.ignoreAttributes)for(let i in e){if(!e.hasOwnProperty(i))continue;let a=t.attributeValueProcessor(i,e[i]);a=n(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${i.substr(t.attributeNamePrefix.length)}`:s+=` ${i.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function i(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let i in t.stopNodes)if(t.stopNodes[i]===e||t.stopNodes[i]==="*."+s)return!0;return!1}function n(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const i=t.entities[s];e=e.replace(i.regex,i.val)}return e}return Z=1,X=function(t,s){let i="";return s.format&&s.indentBy.length>0&&(i="\n"),e(t,s,"",i)}}var le=function(){if(ie)return se;ie=1;const e=z(),t=oe(),s=function(){if(te)return ee;te=1;const e=re(),t=G(),s={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},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 i(e){this.options=Object.assign({},s,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=t(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=o),this.processTextOrObjNode=n,this.options.format?(this.indentate=a,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function n(e,t,s,i){const n=this.j2x(e,s+1,i.concat(t));return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,n.attrStr,s):this.buildObjectNode(n.val,t,n.attrStr,s)}function a(e){return this.options.indentBy.repeat(e)}function o(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}return i.prototype.build=function(t){return this.options.preserveOrder?e(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},i.prototype.j2x=function(e,t,s){let i="",n="";const a=s.join(".");for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(void 0===e[o])this.isAttribute(o)&&(n+="");else if(null===e[o])this.isAttribute(o)?n+="":"?"===o[0]?n+=this.indentate(t)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+o+"/"+this.tagEndChar;else if(e[o]instanceof Date)n+=this.buildTextValNode(e[o],o,"",t);else if("object"!=typeof e[o]){const s=this.isAttribute(o);if(s&&!this.ignoreAttributesFn(s,a))i+=this.buildAttrPairStr(s,""+e[o]);else if(!s)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,""+e[o]);n+=this.replaceEntitiesValue(t)}else n+=this.buildTextValNode(e[o],o,"",t)}else if(Array.isArray(e[o])){const i=e[o].length;let a="",r="";for(let l=0;l<i;l++){const i=e[o][l];if(void 0===i);else if(null===i)"?"===o[0]?n+=this.indentate(t)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+o+"/"+this.tagEndChar;else if("object"==typeof i)if(this.options.oneListGroup){const e=this.j2x(i,t+1,s.concat(o));a+=e.val,this.options.attributesGroupName&&i.hasOwnProperty(this.options.attributesGroupName)&&(r+=e.attrStr)}else a+=this.processTextOrObjNode(i,o,t,s);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,i);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(i,o,"",t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,r,t)),n+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){const t=Object.keys(e[o]),s=t.length;for(let n=0;n<s;n++)i+=this.buildAttrPairStr(t[n],""+e[o][t[n]])}else n+=this.processTextOrObjNode(e[o],o,t,s);return{attrStr:i,val:n}},i.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},i.prototype.buildObjectNode=function(e,t,s,i){if(""===e)return"?"===t[0]?this.indentate(i)+"<"+t+s+"?"+this.tagEndChar:this.indentate(i)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let n="</"+t+this.tagEndChar,a="";return"?"===t[0]&&(a="?",n=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===a.length?this.indentate(i)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(i)+"<"+t+s+a+this.tagEndChar+e+this.indentate(i)+n:this.indentate(i)+"<"+t+s+a+">"+e+n}},i.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},i.prototype.buildTextValNode=function(e,t,s,i){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(i)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(i)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(i)+"<"+t+s+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(t,e);return n=this.replaceEntitiesValue(n),""===n?this.indentate(i)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(i)+"<"+t+s+">"+n+"</"+t+this.tagEndChar}},i.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e},ee=i}();return se={XMLParser:t,XMLValidator:e,XMLBuilder:s}}();class de{_view;constructor(e){ce(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}get loadChildViews(){return this._view.loadChildViews}}const ce=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if("caption"in e&&"string"!=typeof e.caption)throw new Error("View caption must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==le.XMLValidator.validate(e))return!1;let t;const s=new le.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if("order"in e&&"number"!=typeof e.order)throw new Error("View order must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof S))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");if(e.loadChildViews&&"function"!=typeof e.loadChildViews)throw new Error("View loadChildViews must be a function");return!0};var me,ge,ue,fe;function pe(){if(ge)return me;ge=1;const e="object"==typeof l&&l.env&&l.env.NODE_DEBUG&&/\bsemver\b/i.test(l.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};return me=e}function he(){if(fe)return ue;fe=1;const e=Number.MAX_SAFE_INTEGER||9007199254740991;return ue={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:e,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}var ve,we,Ae,be,ye,Ce,ke,_e,xe,Te,Se,Le={exports:{}};function Ne(){if(ke)return Ce;ke=1;const e=pe(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:s}=he(),{safeRe:i,t:n}=(ve||(ve=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:n}=he(),a=pe(),o=(t=e.exports={}).re=[],r=t.safeRe=[],l=t.src=[],d=t.t={};let c=0;const m="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",n],[m,i]],u=(e,t,s)=>{const i=(e=>{for(const[t,s]of g)e=e.split(`${t}*`).join(`${t}{0,${s}}`).split(`${t}+`).join(`${t}{1,${s}}`);return e})(t),n=c++;a(e,n,t),d[e]=n,l[n]=t,o[n]=new RegExp(t,s?"g":void 0),r[n]=new RegExp(i,s?"g":void 0)};u("NUMERICIDENTIFIER","0|[1-9]\\d*"),u("NUMERICIDENTIFIERLOOSE","\\d+"),u("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),u("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),u("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),u("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),u("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),u("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),u("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),u("BUILDIDENTIFIER",`${m}+`),u("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),u("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),u("FULL",`^${l[d.FULLPLAIN]}$`),u("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),u("LOOSE",`^${l[d.LOOSEPLAIN]}$`),u("GTLT","((?:<|>)?=?)"),u("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),u("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),u("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),u("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),u("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),u("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),u("COERCEPLAIN",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?`),u("COERCE",`${l[d.COERCEPLAIN]}(?:$|[^\\d])`),u("COERCEFULL",l[d.COERCEPLAIN]+`(?:${l[d.PRERELEASE]})?(?:${l[d.BUILD]})?(?:$|[^\\d])`),u("COERCERTL",l[d.COERCE],!0),u("COERCERTLFULL",l[d.COERCEFULL],!0),u("LONETILDE","(?:~>?)"),u("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",u("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),u("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),u("LONECARET","(?:\\^)"),u("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",u("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),u("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),u("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),u("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),u("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",u("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),u("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),u("STAR","(<|>)?=?\\s*\\*"),u("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),u("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Le,Le.exports)),Le.exports),a=function(){if(Ae)return we;Ae=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return we=s=>s?"object"!=typeof s?e:s:t}(),{compareIdentifiers:o}=function(){if(ye)return be;ye=1;const e=/^[0-9]+$/,t=(t,s)=>{const i=e.test(t),n=e.test(s);return i&&n&&(t=+t,s=+s),t===s?0:i&&!n?-1:n&&!i?1:t<s?-1:1};return be={compareIdentifiers:t,rcompareIdentifiers:(e,s)=>t(s,e)}}();class r{constructor(o,l){if(l=a(l),o instanceof r){if(o.loose===!!l.loose&&o.includePrerelease===!!l.includePrerelease)return o;o=o.version}else if("string"!=typeof o)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof o}".`);if(o.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",o,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const d=o.trim().match(l.loose?i[n.LOOSE]:i[n.FULL]);if(!d)throw new TypeError(`Invalid Version: ${o}`);if(this.raw=o,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<s)return t}return e})):this.prerelease=[],this.build=d[5]?d[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(t){if(e("SemVer.compare",this.version,this.options,t),!(t instanceof r)){if("string"==typeof t&&t===this.version)return 0;t=new r(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),o(this.major,e.major)||o(this.minor,e.minor)||o(this.patch,e.patch)}comparePre(t){if(t instanceof r||(t=new r(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let s=0;do{const i=this.prerelease[s],n=t.prerelease[s];if(e("prerelease compare",s,i,n),void 0===i&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===i)return-1;if(i!==n)return o(i,n)}while(++s)}compareBuild(t){t instanceof r||(t=new r(t,this.options));let s=0;do{const i=this.build[s],n=t.build[s];if(e("build compare",s,i,n),void 0===i&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===i)return-1;if(i!==n)return o(i,n)}while(++s)}inc(e,t,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,s),this.inc("pre",t,s);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 e=Number(s)?1:0;if(!t&&!1===s)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let i=this.prerelease.length;for(;--i>=0;)"number"==typeof this.prerelease[i]&&(this.prerelease[i]++,i=-2);if(-1===i){if(t===this.prerelease.join(".")&&!1===s)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let i=[t,e];!1===s&&(i=[t]),0===o(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Ce=r}const Fe=N(function(){if(Se)return Te;Se=1;const e=function(){if(xe)return _e;xe=1;const e=Ne();return _e=(t,s,i=!1)=>{if(t instanceof e)return t;try{return new e(t,s)}catch(e){if(!i)return null;throw e}}}();return Te=(t,s)=>{const i=e(t,s);return i?i.version:null}}());var Ue,Ee;const Ie=N(function(){if(Ee)return Ue;Ee=1;const e=Ne();return Ue=(t,s)=>new e(t,s).major}());class Pe{bus;constructor(e){"function"==typeof e.getVersion&&Fe(e.getVersion())?Ie(e.getVersion())!==Ie(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()):console.warn("Proxying an event bus with an unknown or invalid version"),this.bus=e}getVersion(){return"3.3.1"}subscribe(e,t){this.bus.subscribe(e,t)}unsubscribe(e,t){this.bus.unsubscribe(e,t)}emit(e,t){this.bus.emit(e,t)}}class ze{handlers=new Map;getVersion(){return"3.3.1"}subscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).concat(t))}unsubscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).filter((e=>e!==t)))}emit(e,t){(this.handlers.get(e)||[]).forEach((e=>{try{e(t)}catch(e){console.error("could not invoke event listener",e)}}))}}let Be=null;function De(e,t){(null!==Be?Be:"undefined"==typeof window?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&void 0===window._nc_event_bus&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),Be=void 0!==window?._nc_event_bus?new Pe(window._nc_event_bus):window._nc_event_bus=new ze,Be)).emit(e,t)}class Re extends r.m{id;order;constructor(e,t=100){super(),this.id=e,this.order=t}filter(e){throw new Error("Not implemented")}updateChips(e){this.dispatchTypedEvent("update:chips",new CustomEvent("update:chips",{detail:e}))}filterUpdated(){this.dispatchTypedEvent("update:filter",new CustomEvent("update:filter"))}}function Oe(e){if(window._nc_filelist_filters||(window._nc_filelist_filters=new Map),window._nc_filelist_filters.has(e.id))throw new Error(`File list filter "${e.id}" already registered`);window._nc_filelist_filters.set(e.id,e),De("files:filter:added",e)}function je(e){window._nc_filelist_filters&&window._nc_filelist_filters.has(e)&&(window._nc_filelist_filters.delete(e),De("files:filter:removed",e))}function Me(){return window._nc_filelist_filters?[...window._nc_filelist_filters.values()]:[]}const Ve=function(e){return(void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new c,i.o.debug("NewFileMenu initialized")),window._nc_newfilemenu).getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},40603:(e,t,s)=>{s.d(t,{A:()=>i.N});var i=s(75749)},44671:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-66f12ae6]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-66f12ae6]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-66f12ae6]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-66f12ae6]{flex:0 0}.files-list__header-share-button[data-v-66f12ae6]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-66f12ae6]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-66f12ae6]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__before[data-v-66f12ae6]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-66f12ae6]{display:flex;height:100%}.files-list__refresh-icon[data-v-66f12ae6]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-66f12ae6]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA",sourcesContent:["\n:global(.toast-loading-icon) {\n\t// Reduce start margin (it was made for text but this is an icon)\n\tmargin-inline-start: -4px;\n\t// 16px icon + 5px on both sides\n\tmin-width: 26px;\n}\n\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\tposition: relative !important;\n}\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\tmax-width: 100%;\n\t\t// Align with the navigation toggle icon\n\t\tmargin-block: var(--app-navigation-padding, 4px);\n\t\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\n\n\t\t&--public {\n\t\t\t// There is no navigation toggle on public shares\n\t\t\tmargin-inline: 0 var(--app-navigation-padding, 4px);\n\t\t}\n\n\t\t>* {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\n\t\t&-share-button {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\n\t\t\t&--shared {\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\n\t\t&-actions {\n\t\t\tmin-width: fit-content !important;\n\t\t\tmargin-inline: calc(var(--default-grid-baseline) * 2);\n\t\t}\n\t}\n\n\t&__before {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\n\t}\n\n\t&__empty-view-wrapper {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t}\n\n\t&__refresh-icon {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t}\n\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n"],sourceRoot:""}]);const r=o},61501:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list[data-v-1affbcbc]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-1affbcbc]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-1affbcbc] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-1affbcbc] tbody tr{contain:strict}.files-list[data-v-1affbcbc] tbody tr:hover,.files-list[data-v-1affbcbc] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-1affbcbc] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-1affbcbc] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-1affbcbc] .files-list__table{display:block}.files-list[data-v-1affbcbc] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-1affbcbc] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-1affbcbc] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-1affbcbc] .files-list__thead,.files-list[data-v-1affbcbc] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-1affbcbc] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-1affbcbc] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-1affbcbc] td,.files-list[data-v-1affbcbc] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-1affbcbc] td span,.files-list[data-v-1affbcbc] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-1affbcbc] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-1affbcbc] .files-list__row-checkbox{justify-content:center}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-1affbcbc] .files-list__row:hover,.files-list[data-v-1affbcbc] .files-list__row:focus,.files-list[data-v-1affbcbc] .files-list__row:active,.files-list[data-v-1affbcbc] .files-list__row--active,.files-list[data-v-1affbcbc] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-1affbcbc] .files-list__row:hover>*,.files-list[data-v-1affbcbc] .files-list__row:focus>*,.files-list[data-v-1affbcbc] .files-list__row:active>*,.files-list[data-v-1affbcbc] .files-list__row--active>*,.files-list[data-v-1affbcbc] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-1affbcbc] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-1affbcbc] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-1affbcbc] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-1affbcbc] .files-list__row-icon *{cursor:pointer}.files-list[data-v-1affbcbc] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-1affbcbc] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-1affbcbc] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-1affbcbc] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-1affbcbc] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-1affbcbc] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-1affbcbc] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-1affbcbc] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-1affbcbc] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-1affbcbc] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-1affbcbc] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-1affbcbc] .files-list__row-actions{width:auto}.files-list[data-v-1affbcbc] .files-list__row-actions~td,.files-list[data-v-1affbcbc] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-1affbcbc] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-1affbcbc] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-1affbcbc] .files-list__row-mime,.files-list[data-v-1affbcbc] .files-list__row-mtime,.files-list[data-v-1affbcbc] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-1affbcbc] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-1affbcbc] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-1affbcbc] .files-list__row-mime{width:calc(var(--row-height)*2.5)}.files-list[data-v-1affbcbc] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-1affbcbc] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"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",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: var(--default-clickable-area);\n\t--icon-preview-size: 32px;\n\n\t--fixed-block-start-position: var(--default-clickable-area);\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&:has(.file-list-filters__active) {\n\t\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\n\t}\n\n\t& :deep() {\n\t\t// Table head, body and footer\n\t\ttbody {\n\t\t\twill-change: padding;\n\t\t\tcontain: layout paint style;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\n\t\t\t/* Hover effect on tbody lines only */\n\t\t\ttr {\n\t\t\t\tcontain: strict;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Before table and thead\n\t\t.files-list__before {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.files-list__selected {\n\t\t\tpadding-inline-end: 12px;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.files-list__table {\n\t\t\tdisplay: block;\n\n\t\t\t&.files-list__table--with-thead-overlay {\n\t\t\t\t// Hide the table header below the overlay\n\t\t\t\tmargin-block-start: calc(-1 * var(--row-height));\n\t\t\t}\n\t\t}\n\n\t\t.files-list__filters {\n\t\t\t// Pinned on top when scrolling above table header\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\t// ensure there is a background to hide the file list on scroll\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tz-index: 10;\n\t\t\t// fixed the size\n\t\t\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\n\t\t\theight: var(--fixed-block-start-position);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.files-list__thead-overlay {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t\t// Save space for a row checkbox\n\t\t\tmargin-inline-start: var(--row-height);\n\t\t\t// More than .files-list__thead\n\t\t\tz-index: 20;\n\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t// Reuse row styles\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\t.files-list__thead,\n\t\t.files-list__tfoot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\t// Table header\n\t\t.files-list__thead {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\tbox-sizing: border-box;\n\t\t\tuser-select: none;\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: start;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row--failed {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: 0;\n\t\t\tinset-inline: 0;\n\t\t\tbottom: 0;\n\t\t\topacity: .1;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-error);\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row {\n\t\t\t&:hover, &:focus, &:active, &--active, &--dragover {\n\t\t\t\t// WCAG AA compliant\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t// text-maxcontrast have been designed to pass WCAG AA over\n\t\t\t\t// a white background, we need to adjust then.\n\t\t\t\t--color-text-maxcontrast: var(--color-main-text);\n\t\t\t\t> * {\n\t\t\t\t\t--color-border: var(--color-border-dark);\n\t\t\t\t}\n\n\t\t\t\t// Hover state of the row should also change the favorite markers background\n\t\t\t\t.favorite-marker-icon svg path {\n\t\t\t\t\tstroke: var(--color-background-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&--dragover * {\n\t\t\t\t// Prevent dropping on row children\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t// Entry preview or mime icon\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-inline-end: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t// Icon is also clickable\n\t\t\t* {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\n\t\t\t\t&:not(.files-list__row-icon-favorite) svg {\n\t\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\t}\n\n\t\t\t\t// Slightly increase the size of the folder icon\n\t\t\t\t&.folder-icon,\n\t\t\t\t&.folder-open-icon {\n\t\t\t\t\tmargin: -3px;\n\t\t\t\t\tsvg {\n\t\t\t\t\t\twidth: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t\theight: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-preview-container {\n\t\t\t\tposition: relative; // Needed for the blurshash to be positioned correctly\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t}\n\n\t\t\t&-blurhash {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block-start: 0;\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\t// Center and contain the preview\n\t\t\t\tobject-fit: contain;\n\t\t\t\tobject-position: center;\n\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t/* Preview not loaded animation effect */\n\t\t\t\t&:not(.files-list__row-icon-preview--loaded) {\n\t\t\t\t\tbackground: var(--color-loading-dark);\n\t\t\t\t\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0px;\n\t\t\t\tinset-inline-end: -10px;\n\t\t\t}\n\n\t\t\t// File and folder overlay\n\t\t\t&-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\tmax-height: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tmax-width: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tcolor: var(--color-primary-element-text);\n\t\t\t\t// better alignment with the folder icon\n\t\t\t\tmargin-block-start: 2px;\n\n\t\t\t\t// Improve icon contrast with a background for files\n\t\t\t\t&--file {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground: var(--color-main-background);\n\t\t\t\t\tborder-radius: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Entry link\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\tbutton.files-list__row-name-link {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\ttext-align: start;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\t// Necessary for flex grow to work\n\t\t\t\tmin-width: 0;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t// Already added to the inner text, see rule below\n\t\t\t\t&:focus-visible {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text {\n\t\t\t\t\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\t}\n\t\t\t\t&:focus:not(:focus-visible) .files-list__row-name-text {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n\t\t\t\tpadding-inline-start: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t// always show the extension\n\t\t\t\toverflow: visible;\n\t\t\t}\n\t\t}\n\n\t\t// Rename form\n\t\t.files-list__row-rename {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 600px;\n\t\t\tinput {\n\t\t\t\twidth: 100%;\n\t\t\t\t// Align with text, 0 - padding - border\n\t\t\t\tmargin-inline-start: -8px;\n\t\t\t\tpadding: 2px 6px;\n\t\t\t\tborder-width: 2px;\n\n\t\t\t\t&:invalid {\n\t\t\t\t\t// Show red border on invalid input\n\t\t\t\t\tborder-color: var(--color-error);\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\t// take as much space as necessary\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-action--inline {\n\t\t\tmargin-inline-end: 7px;\n\t\t}\n\n\t\t.files-list__row-mime,\n\t\t.files-list__row-mtime,\n\t\t.files-list__row-size {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t.files-list__row-size {\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// Right align content/text\n\t\t\tjustify-content: flex-end;\n\t\t}\n\n\t\t.files-list__row-mtime {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\n\t\t.files-list__row-mime {\n\t\t\twidth: calc(var(--row-height) * 2.5);\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n\n@media screen and (max-width: 512px) {\n\t.files-list :deep(.files-list__filters) {\n\t\t// Reduce padding on mobile\n\t\tpadding-inline: var(--default-grid-baseline, 4px);\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},63569:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropNotice.vue"],names:[],mappings:"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA",sourcesContent:["\n.files-list__drag-drop-notice {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\t// Breadcrumbs height + row thead height\n\tmin-height: calc(58px + 55px);\n\tmargin: 0;\n\tuser-select: none;\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: var(--color-main-background);\n\tborder-color: black;\n\n\th3 {\n\t\tmargin-inline-start: 16px;\n\t\tcolor: inherit;\n\t}\n\n\t&-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 15vh;\n\t\tmax-height: 70%;\n\t\tpadding: 0 5vw;\n\t\tborder: 2px var(--color-border-dark) dashed;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},72383:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".setting-link[data-v-9a0994e0]:hover{text-decoration:underline}.shortcut-key[data-v-9a0994e0]{width:160px;white-space:normal}.shortcut-key span[data-v-9a0994e0]{white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n"],sourceRoot:""}]);const r=o},75688:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".app-navigation-entry__settings-quota[data-v-d3cdbf54]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-d3cdbf54] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-d3cdbf54]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n"],sourceRoot:""}]);const r=o},80355:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".app-navigation[data-v-084c464a] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-084c464a]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-084c464a]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-084c464a]{height:100%}.files-navigation[data-v-084c464a] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA",sourcesContent:["\n.app-navigation {\n\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\n\t\tcolor: var(--color-primary-element-text);\n\t}\n\n\t> ul.app-navigation__list {\n\t\t// Use flex gap value for more elegant spacing\n\t\tpadding-bottom: var(--default-grid-baseline, 4px);\n\t}\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n\n.files-navigation {\n\t&__list {\n\t\theight: 100%; // Fill all available space for sticky views\n\t}\n\n\t:deep(.app-navigation__content > ul.app-navigation__list) {\n\t\twill-change: scroll-position;\n\t}\n}\n"],sourceRoot:""}]);const r=o},85748:(e,t,s)=>{s.d(t,{S:()=>B,U:()=>X,a:()=>R,b:()=>N,g:()=>Z,h:()=>Q,i:()=>O,l:()=>E,n:()=>W,o:()=>ee,t:()=>F}),s(91543);var i=s(82680),n=s(85471),a=s(21777),o=s(35810),r=s(71225),l=s(43627),d=s(87485),c=s(65043),m=s(53553),g=s(49264),u=s(11195),f=s(63814),p=s(11950),h=s(35947),v=s(380),w=s(94205),A=s(57505),b=s(61744),y=s(15502),C=s(24764),k=s(97012),_=s(6695),x=s(95101),T=s(85168);const S=(0,u.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"Ali <alimahwer@yahoo.com>, 2025","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"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;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nabu.s3ud, 2024\nAli <alimahwer@yahoo.com>, 2025\n"},msgstr:["Last-Translator: Ali <alimahwer@yahoo.com>, 2025\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: 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;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" هو اسم ممنوع لملف أو مجلد.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" هو نوع ممنوع أن يكون لملف.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" هو غير مسموح به في اسم ملف أو مجلد.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفان متعارضان في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفات متعارضة في {dirname}","{count} ملفات متعارضة في {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["بضع ثوانٍ متبقية"]},assembling:{msgid:"assembling",msgstr:["تجميع"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"Create new":{msgid:"Create new",msgstr:["إنشاء جديد"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["تعذّرت إعادة تجميع الكتل معاً "]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["تعذّر رفع الملف"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['غير مسموح ان ينتهي اسم الملف بـ "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["اسم ملف غير صحيح"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معروف"]},New:{msgid:"New",msgstr:["جديد"]},"New filename":{msgid:"New filename",msgstr:["اسم ملف جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},Rename:{msgid:"Rename",msgstr:["تغيير التسمية"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},Skip:{msgid:"Skip",msgstr:["تخطِّي"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},Upload:{msgid:"Upload",msgstr:["رفع الملفات"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload folders":{msgid:"Upload folders",msgstr:["رفع مجلدات"]},"Upload from device":{msgid:"Upload from device",msgstr:["الرفع من جهاز "]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["تمّ إلغاء عملية رفع الملفات"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["تمّ تجاوز الرفع"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['رفع "{folder}" تمّ تجاوزه']},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2025","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\nMartin Hankovec, 2024\nAppukonrad <appukonrad@gmail.com>, 2024\nPavel Borecki <pavel.borecki@gmail.com>, 2025\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2025\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ není povoleno použít jako název souboru či složky."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ není povoleného typu souboru."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ není povoleno použít v rámci názvu souboru či složky."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["zbývá {seconds}","zbývají {seconds}","zbývá {seconds}","zbývají {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},assembling:{msgid:"assembling",msgstr:["sestavování"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"Create new":{msgid:"Create new",msgstr:["Vytvořit nový"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Shluky se nepodařilo dát dohromady"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Soubor se nepodařilo nahrát"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Názvy souborů nemohou končit na „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný název souboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New filename":{msgid:"New filename",msgstr:["Nový název souboru"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},Rename:{msgid:"Rename",msgstr:["Přejmenovat"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},Skip:{msgid:"Skip",msgstr:["Přeskočit"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit {count} soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Skip this file":{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},Upload:{msgid:"Upload",msgstr:["Nahrát"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrát složky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrát ze zařízení"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávání bylo zrušeno"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrání bylo přeskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Nahrání „{folder}“ bylo přeskočeno"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2025","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRasmus Rosendahl-Kaa, 2024\nMartin Bonde <Martin@maboni.dk>, 2025\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2025\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tilladt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage","{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},assembling:{msgid:"assembling",msgstr:["samling"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"Create new":{msgid:"Create new",msgstr:["Opret ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Mislykkedes at samle stumperne sammen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Kunne ikke uploade filen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavne må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldigt filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nyt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},Rename:{msgid:"Rename",msgstr:["Omdøb"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Spring over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload fra enhed"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload er blevet annulleret"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload er blevet sprunget over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload af "{folder}" er blevet sprunget over']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2025","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\nMartin Wilichowski, 2025\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\nMario Siegmann <mario_siegmann@web.de>, 2025\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} Sekunde verbleibt","{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},assembling:{msgid:"assembling",msgstr:["zusammenfügen"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Das Zusammenfügen der Teile ist fehlgeschlagen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Das Hochladen der Datei ist fehlgeschlagen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Skip this file":{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2025","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMartin Wilichowski, 2025\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\nMario Siegmann <mario_siegmann@web.de>, 2025\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} Sekunde verbleibt","{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},assembling:{msgid:"assembling",msgstr:["zusammenfügen"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Das Zusammenfügen der Teile ist fehlgeschlagen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Beim Hochladen der Datei ist ein Fehler aufgetreten"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Skip this file":{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Efstathios Iosifidis <iefstathios@gmail.com>, 2025","Language-Team":"Greek (https://app.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nEfstathios Iosifidis <iefstathios@gmail.com>, 2025\n"},msgstr:["Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2025\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Το "{segment}" είναι απαγορευμένο όνομα αρχείου ή φακέλου.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Το "{segment}" είναι απαγορευμένος τύπος αρχείου.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Το "{segment}" δεν επιτρέπεται μέσα στο όνομα ενός αρχείου ή φακέλου.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} αρχείο σε διένεξη","{count} αρχεία σε διένεξη"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} αρχείο σε διένεξη στον φάκελο {dirname}","{count} αρχεία σε διένεξη στον φάκελο {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["Απομένει {seconds} δευτερόλεπτο","Απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},assembling:{msgid:"assembling",msgstr:["συναρμολόγηση"]},Cancel:{msgid:"Cancel",msgstr:["Ακύρωση"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της λειτουργίας"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},Continue:{msgid:"Continue",msgstr:["Συνέχεια"]},"Create new":{msgid:"Create new",msgstr:["Δημιουργία νέου"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},"Existing version":{msgid:"Existing version",msgstr:["Υπάρχουσα έκδοση"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Αποτυχία συναρμολόγησης των τμημάτων"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Αποτυχία μεταφόρτωσης του αρχείου"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Αν επιλέξετε και τις δύο εκδόσεις, το εισερχόμενο αρχείο θα έχει έναν αριθμό προσαρτημένο στο όνομά του."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Μη έγκυρο όνομα αρχείου"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},New:{msgid:"New",msgstr:["Νέο"]},"New filename":{msgid:"New filename",msgstr:["Νέο όνομα αρχείου"]},"New version":{msgid:"New version",msgstr:["Νέα έκδοση"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Preview image":{msgid:"Preview image",msgstr:["Προεπισκόπηση εικόνας"]},Rename:{msgid:"Rename",msgstr:["Μετονομασία"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Επιλογή όλων των πλαισίων ελέγχου"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπαρχόντων αρχείων"]},"Select all new files":{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},Skip:{msgid:"Skip",msgstr:["Παράλειψη"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Παράλειψη αυτού του αρχείου","Παράλειψη {count} αρχείων"]},"Unknown size":{msgid:"Unknown size",msgstr:["Άγνωστο μέγεθος"]},Upload:{msgid:"Upload",msgstr:["Μεταφόρτωση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]},"Upload folders":{msgid:"Upload folders",msgstr:["Μεταφόρτωση φακέλων"]},"Upload from device":{msgid:"Upload from device",msgstr:["Μεταφόρτωση από συσκευή"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Η μεταφόρτωση ακυρώθηκε"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Η μεταφόρτωση παραλείφθηκε"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Η μεταφόρτωση του "{folder}" παραλείφθηκε']},"Upload progress":{msgid:"Upload progress",msgstr:["Πρόοδος μεταφόρτωσης"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας εισερχόμενος φάκελος, όλα τα αρχεία σε διένεξη μέσα σε αυτόν θα αντικατασταθούν."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας εισερχόμενος φάκελος, το περιεχόμενό του γράφεται στον υπάρχοντα φάκελο και εκτελείται αναδρομική επίλυση διενέξεων."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Μπορείτε είτε να μετονομάσετε το αρχείο, να παραλείψετε αυτό το αρχείο ή να ακυρώσετε όλη τη λειτουργία."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση κάθε αρχείου για να συνεχίσετε."]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2025","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndi Chandler <andi@gowling.com>, 2025\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2025\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" is a forbidden file or folder name.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" is a forbidden file type.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" is not allowed inside a file or folder name.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} seconds left","{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},assembling:{msgid:"assembling",msgstr:["assembling"]},Cancel:{msgid:"Cancel",msgstr:["Cancel"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"Create new":{msgid:"Create new",msgstr:["Create new"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Failed assembling the chunks together"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Failed uploading the file"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filenames must not end with "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Invalid filename"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},New:{msgid:"New",msgstr:["New"]},"New filename":{msgid:"New filename",msgstr:["New filename"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},Rename:{msgid:"Rename",msgstr:["Rename"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},Skip:{msgid:"Skip",msgstr:["Skip"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload folders"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload from device"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload has been cancelled"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload has been skipped"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload of "{folder}" has been skipped']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload progress"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["You can either rename the file, skip this file or cancel the whole operation."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Saltar"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matías Campo Hoet <matiascampo@gmail.com>, 2024","Language-Team":"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\n"},msgstr:["Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa de imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Cargar archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Cargar carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Cargar desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Carga cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la carga"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"Jehu Marcos Herrera Puentes, 2024","Language-Team":"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJehu Marcos Herrera Puentes, 2024\n"},msgstr:["Last-Translator: Jehu Marcos Herrera Puentes, 2024\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿Cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivo en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Cuáles archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Priit Jõerüüt <transifex@joeruut.com>, 2025","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPriit Jõerüüt <transifex@joeruut.com>, 2025\n"},msgstr:["Last-Translator: Priit Jõerüüt <transifex@joeruut.com>, 2025\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ on keelatud faili- või kausta nimi."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ on keelatud failitüüp."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ pole faili- või kausta nimes lubatud."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fail on vastuolus","{count} faili on vastuolus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail on vastuolus „{dirname}“ kaustas","{count} faili on vastuolus „{dirname}“ kaustas"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["jäänud {seconds} sekund","jäänud {seconds} sekundit"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["aega jäänud {time} "]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},assembling:{msgid:"assembling",msgstr:["koostamisel"]},Cancel:{msgid:"Cancel",msgstr:["Katkesta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Katkesta üleslaadimine"]},Continue:{msgid:"Continue",msgstr:["Jätka"]},"Create new":{msgid:"Create new",msgstr:["Loo uus"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},"Existing version":{msgid:"Existing version",msgstr:["Olemasolev versioon"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Tükkide koostamine üheks tervikuks ei õnnestunud"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Faili üleslaadimine ei õnnestunud"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Failinime lõpus ei tohi olla „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Vigane failinimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},New:{msgid:"New",msgstr:["Uus"]},"New filename":{msgid:"New filename",msgstr:["Uus failinimi"]},"New version":{msgid:"New version",msgstr:["Uus versioon"]},paused:{msgid:"paused",msgstr:["pausil"]},"Preview image":{msgid:"Preview image",msgstr:["Vaata pildi eelvaadet"]},Rename:{msgid:"Rename",msgstr:["Muuda nime"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vali kõik olemasolevad failid"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vali kõik uued failid"]},Skip:{msgid:"Skip",msgstr:["Jäta vahele"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Jäta vahele {count} fail","Jäta vahele {count} faili"]},"Skip this file":{msgid:"Skip this file",msgstr:["Jäta vahele see fail"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tundmatu suurus"]},Upload:{msgid:"Upload",msgstr:["Laadi üles"]},"Upload files":{msgid:"Upload files",msgstr:["Laadi failid üles"]},"Upload folders":{msgid:"Upload folders",msgstr:["Laadi kaustad üles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Laadi üles seadmest"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Üleslaadimine on katkestatud"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Üleslaadimine on vahele jäetud"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}“ kausta üleslaadimine on vahele jäetud"]},"Upload progress":{msgid:"Upload progress",msgstr:["Üleslaadimise edenemine"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Milliseid faile soovid säilitada?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamiseks pead valima vähemalt ühe versiooni igast failist."]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Alireza Rashidi, 2025","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nreza reza <forghan89@yahoo.com>, 2024\nAlireza Rashidi, 2025\n"},msgstr:["Last-Translator: Alireza Rashidi, 2025\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["{segment} یک نام فایل یا پوشه ممنوعه است."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["{segment} یک نوع فایل ممنوعه است."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["{segment} داخل نام فایل یا پوشه مجاز نیست."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} تداخل فایل","{count} تداخل فایلها"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} پرونده با {dirname} ناسازگاری داشت","{count} پرونده با {dirname} ناسازگاری داشت"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} ثانیه مانده","{seconds} ثانیه مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},assembling:{msgid:"assembling",msgstr:["سرهم کردن"]},Cancel:{msgid:"Cancel",msgstr:["رد کردن"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["رد کردن کل عملیات"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["رد کردن بارگذاری"]},Continue:{msgid:"Continue",msgstr:["ادامه"]},"Create new":{msgid:"Create new",msgstr:["ساخت جدید"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},"Existing version":{msgid:"Existing version",msgstr:["نگارش موجود"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["نتوانست تکههای را به سرهم کند"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["نتوانست پرونده را بارگذاری کند"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["نام پرونده نباید با {segment} پایان یابد."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["اگر هر دو نسخه را انتخاب کنید، یک عدد به نام پرونده ورودی اضافه خواهد شد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["نام پرونده نامعتبر"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["آخرین تاریخ تغییر نامشخص"]},New:{msgid:"New",msgstr:["جدید"]},"New filename":{msgid:"New filename",msgstr:["نام فایل جدید"]},"New version":{msgid:"New version",msgstr:["نسخه جدید"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Preview image":{msgid:"Preview image",msgstr:["پیش نمایش تصویر"]},Rename:{msgid:"Rename",msgstr:["تغییر نام"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["انتخاب همه چکباکسها"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["انتخاب همه فایلهای موجود"]},"Select all new files":{msgid:"Select all new files",msgstr:["انتخاب همه فایلهای جدید"]},Skip:{msgid:"Skip",msgstr:["رد شدن"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["رد شدن از ","رد شدن از {count} فایل"]},"Unknown size":{msgid:"Unknown size",msgstr:["اندازه نامشخص"]},Upload:{msgid:"Upload",msgstr:["بارگذاری"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری پروندهها"]},"Upload folders":{msgid:"Upload folders",msgstr:["بارگذاری پوشهها"]},"Upload from device":{msgid:"Upload from device",msgstr:["بارگذاری از دستگاه"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["بارگذاری رد شده است"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["بارگذاری نادیده گرفته شده است"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["بارگذاری {folder} نادیده گرفته شده است"]},"Upload progress":{msgid:"Upload progress",msgstr:["روند بارگذاری"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["هنگامی که یک پوشه ورودی انتخاب میشود، هر فایل متناقضی در آن نیز بازنویسی میشود."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["هنگامی که یک پوشه دریافتی انتخاب می شود ، محتوا در پوشه موجود نوشته می شود و حل ناسازگاری بازگشتی انجام می شود."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["کدام پروندهها را میخواهید نگه دارید؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["میتوانید نام پرونده را تغییر دهید، از این پرونده رد شوید یا کل عملیات را رد کنید."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["برای ادامه باید دستکم یک نگارش از هر پرونده را انتخاب کنید."]}}}}},{locale:"fi",json:{charset:"utf-8",headers:{"Last-Translator":"Jiri Grönroos <jiri.gronroos@iki.fi>, 2025","Language-Team":"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nthingumy, 2024\nteemue, 2024\nJiri Grönroos <jiri.gronroos@iki.fi>, 2025\n"},msgstr:["Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" on kielletty tiedoston tai hakemiston nimi.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" on kielletty tiedostotyyppi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ei ole sallittu tiedoston tai hakemiston nimessä.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} tiedoston ristiriita","{count} tiedoston ristiriita"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tiedoston ristiriita kansiossa {dirname}","{count} tiedoston ristiriita kansiossa {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekunti jäljellä","{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},assembling:{msgid:"assembling",msgstr:["kootaan"]},Cancel:{msgid:"Cancel",msgstr:["Peruuta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Peruuta koko toimenpide"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},Continue:{msgid:"Continue",msgstr:["Jatka"]},"Create new":{msgid:"Create new",msgstr:["Luo uusi"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},"Existing version":{msgid:"Existing version",msgstr:["Olemassa oleva versio"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Palojen kokoaminen yhteen epäonnistui"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Tiedoston lähetys epäonnistui"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Tiedoston nimi ei saa päättyä "{segment}"']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Kielletty/väärä tiedoston nimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimeisin muokkauspäivä on tuntematon"]},New:{msgid:"New",msgstr:["Uusi"]},"New filename":{msgid:"New filename",msgstr:["Uusi tiedostonimi"]},"New version":{msgid:"New version",msgstr:["Uusi versio"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Preview image":{msgid:"Preview image",msgstr:["Esikatsele kuva"]},Rename:{msgid:"Rename",msgstr:["Nimeä uudelleen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Valitse kaikki valintaruudut"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Valitse kaikki olemassa olevat tiedostot"]},"Select all new files":{msgid:"Select all new files",msgstr:["Valitse kaikki uudet tiedostot"]},Skip:{msgid:"Skip",msgstr:["Ohita"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ohita tämä tiedosto","Ohita {count} tiedostoa"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tuntematon koko"]},Upload:{msgid:"Upload",msgstr:["Lähetä"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]},"Upload folders":{msgid:"Upload folders",msgstr:["Lähetä kansioita"]},"Upload from device":{msgid:"Upload from device",msgstr:["Lähetä laitteelta"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Lähetys on peruttu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Lähetys on ohitettu"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Hakemiston "{folder}" lähetys on ohitettu']},"Upload progress":{msgid:"Upload progress",msgstr:["Lähetyksen edistyminen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mitkä tiedostot haluat säilyttää?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi."]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"Lisa Cintosh, 2025","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\nJérôme HERBINET, 2024\nacazenave, 2024\nLisa Cintosh, 2025\n"},msgstr:["Last-Translator: Lisa Cintosh, 2025\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" est un nom de fichier ou de dossier interdit.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" est un type de fichier interdit.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} seconde restante","{seconds} secondes restantes","{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},assembling:{msgid:"assembling",msgstr:["assemblage"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les téléversements"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"Create new":{msgid:"Create new",msgstr:["Créer un nouveau"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Échec de l'assemblage des morceaux"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Échec du téléversement du fichier"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Le nom des fichiers ne doit pas finir par "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nom de fichier invalide"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New filename":{msgid:"New filename",msgstr:["Nouveau nom de fichier"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},Rename:{msgid:"Rename",msgstr:["Renommer"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},Skip:{msgid:"Skip",msgstr:["Ignorer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},Upload:{msgid:"Upload",msgstr:["Téléverser"]},"Upload files":{msgid:"Upload files",msgstr:["Téléverser des fichiers"]},"Upload folders":{msgid:"Upload folders",msgstr:["Téléverser des dossiers"]},"Upload from device":{msgid:"Upload from device",msgstr:["Téléverser depuis l'appareil"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Le téléversement a été annulé"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Le téléversement a été ignoré"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Le téléversement de "{folder}" a été ignoré']},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléversement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"ga",json:{charset:"utf-8",headers:{"Last-Translator":"Aindriú Mac Giolla Eoin, 2025","Language-Team":"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)","Content-Type":"text/plain; charset=UTF-8",Language:"ga","Plural-Forms":"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nAindriú Mac Giolla Eoin, 2025\n"},msgstr:["Last-Translator: Aindriú Mac Giolla Eoin, 2025\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ga\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Is ainm toirmiscthe comhaid nó fillteáin é "{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Is cineál comhaid toirmiscthe é "{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Ní cheadaítear "{segment}" taobh istigh d\'ainm comhaid nó fillteáin.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} coimhlint comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} coimhlint comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} fágtha"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["cúpla soicind fágtha"]},assembling:{msgid:"assembling",msgstr:["ag cur le chéile"]},Cancel:{msgid:"Cancel",msgstr:["Cealaigh"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht iomlán"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cealaigh uaslódálacha"]},Continue:{msgid:"Continue",msgstr:["Leanúint ar aghaidh"]},"Create new":{msgid:"Create new",msgstr:["Cruthaigh nua"]},"estimating time left":{msgid:"estimating time left",msgstr:["ag déanamh meastachán ar an am atá fágtha"]},"Existing version":{msgid:"Existing version",msgstr:["Leagan láithreach "]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Theip ar na smután a chur le chéile le chéile"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Theip ar uaslódáil an chomhaid"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Níor cheart go gcríochnaíonn comhaid chomhad le "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ainm comhaid neamhbhailí"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dáta modhnaithe is déanaí anaithnid"]},New:{msgid:"New",msgstr:["Nua"]},"New filename":{msgid:"New filename",msgstr:["Ainm comhaid nua"]},"New version":{msgid:"New version",msgstr:["Leagan nua"]},paused:{msgid:"paused",msgstr:["sos"]},"Preview image":{msgid:"Preview image",msgstr:["Íomhá réamhamharc"]},Rename:{msgid:"Rename",msgstr:["Athainmnigh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Roghnaigh gach ticbhosca"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Roghnaigh gach comhad atá ann cheana féin"]},"Select all new files":{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},Skip:{msgid:"Skip",msgstr:["Scipeáil"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Léim an comhad {count}","Léim thar {count} comhad","Léim thar {count} comhad","Léim thar {count} comhad","Léim thar {count} comhad"]},"Skip this file":{msgid:"Skip this file",msgstr:["Seachain an comhad seo"]},"Unknown size":{msgid:"Unknown size",msgstr:["Méid anaithnid"]},Upload:{msgid:"Upload",msgstr:["Uaslódáil"]},"Upload files":{msgid:"Upload files",msgstr:["Uaslódáil comhaid"]},"Upload folders":{msgid:"Upload folders",msgstr:["Uaslódáil fillteáin"]},"Upload from device":{msgid:"Upload from device",msgstr:["Íosluchtaigh ó ghléas"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Cuireadh an t-uaslódáil ar ceal"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Léiríodh an uaslódáil"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Léiríodh an uaslódáil "{folder}".']},"Upload progress":{msgid:"Upload progress",msgstr:["Uaslódáil dul chun cinn"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2025\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» é un nome vedado para un ficheiro ou cartafol."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» é un tipo de ficheiro vedado."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["falta {seconds} segundo","faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},assembling:{msgid:"assembling",msgstr:["ensamblando"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancela toda a operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear un novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Produciuse un fallo ao ensamblar os anacos"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Produciuse un fallo ao enviar o ficheiro"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Os nomes de ficheiros non deben rematar con «{segment}»."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["O nome de ficheiro non é válido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de ficheiro"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar cartafoles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Enviar dende o dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O envío foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O envío foi omitido"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["O envío de «{folder}» foi omitido"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024","Language-Team":"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\n"},msgstr:["Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Tiltott fájl- vagy mappanév: „{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Tiltott fájltípus: „{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Nem megengedett egy fájl- vagy mappanévben: „{segment}".']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}fájlt érintő konfliktus","{count} fájlt érintő konfliktus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fájlt érintő konfliktus a mappában: {dirname}","{count}fájlt érintő konfliktus a mappában: {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Cancel:{msgid:"Cancel",msgstr:["Mégse"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Teljes művelet megszakítása"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},Continue:{msgid:"Continue",msgstr:["Tovább"]},"Create new":{msgid:"Create new",msgstr:["Új létrehozása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},"Existing version":{msgid:"Existing version",msgstr:["Jelenlegi változat"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Fájlnevek nem végződhetnek erre: „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Érvénytelen fájlnév"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Utolsó módosítás dátuma ismeretlen"]},New:{msgid:"New",msgstr:["Új"]},"New filename":{msgid:"New filename",msgstr:["Új fájlnév"]},"New version":{msgid:"New version",msgstr:["Új verzió"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Preview image":{msgid:"Preview image",msgstr:["Kép előnézete"]},Rename:{msgid:"Rename",msgstr:["Átnevezés"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Minden jelölőnégyzet kijelölése"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Minden jelenlegi fájl kijelölése"]},"Select all new files":{msgid:"Select all new files",msgstr:["Minden új fájl kijelölése"]},Skip:{msgid:"Skip",msgstr:["Kihagyás"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ezen fájl kihagyása","{count}fájl kihagyása"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ismeretlen méret"]},Upload:{msgid:"Upload",msgstr:["Feltöltés"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]},"Upload folders":{msgid:"Upload folders",msgstr:["Mappák feltöltése"]},"Upload from device":{msgid:"Upload from device",msgstr:["Feltöltés eszközről"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Feltöltés meg lett szakítva"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Feltöltés át lett ugorva"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}” feltöltése át lett ugorva"]},"Upload progress":{msgid:"Upload progress",msgstr:["Feltöltési folyamat"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat kívánja megtartani?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz minden fájlból legalább egy verziót ki kell választani."]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2025","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nSveinn í Felli <sv1@fellsnet.is>, 2025\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2025\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er bannað sem heiti á skrá eða möppu.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er bönnuð skráartegund.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ekki leyfilegt innan í heiti á skrá eða möppu.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekúnda eftir","{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},assembling:{msgid:"assembling",msgstr:["set saman"]},Cancel:{msgid:"Cancel",msgstr:["Hætta við"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Hætta við alla aðgerðina"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"Create new":{msgid:"Create new",msgstr:["Búa til nýtt"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Mistókst að setja saman bútana"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Mistókst að senda inn skrána"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Skráaheiti mega ekki enda á "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ógilt skráarheiti"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New filename":{msgid:"New filename",msgstr:["Nýtt skráarheiti"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},Rename:{msgid:"Rename",msgstr:["Endurnefna"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},Skip:{msgid:"Skip",msgstr:["Sleppa"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},Upload:{msgid:"Upload",msgstr:["Senda inn"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Upload folders":{msgid:"Upload folders",msgstr:["Senda inn möppur"]},"Upload from device":{msgid:"Upload from device",msgstr:["Senda inn frá tæki"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Hætt hefur verið við innsendingu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Innsendingu hefur verið sleppt"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Innsendingu á "{folder}" hefur verið sleppt']},"Upload progress":{msgid:"Upload progress",msgstr:["Framvinda innsendingar"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"albanobattistella <albanobattistella@gmail.com>, 2024","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFrancesco Sercia, 2024\nalbanobattistella <albanobattistella@gmail.com>, 2024\n"},msgstr:["Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" è un nome di file o cartella proibito.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"è un tipo di file proibito.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" non è consentito all\'interno di un nome di file o cartella.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},Cancel:{msgid:"Cancel",msgstr:["Annulla"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"Create new":{msgid:"Create new",msgstr:["Crea nuovo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['I nomi dei file non devono terminare con "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome file non valido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New filename":{msgid:"New filename",msgstr:["Nuovo nome file"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},Rename:{msgid:"Rename",msgstr:["Rinomina"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},Skip:{msgid:"Skip",msgstr:["Salta"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},Upload:{msgid:"Upload",msgstr:["Caricamento"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Upload folders":{msgid:"Upload folders",msgstr:["Carica cartelle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carica dal dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Caricamento annullato"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Il caricamento è stato saltato"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Il caricamento di "{folder}" è stato saltato']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso del caricamento"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["È possibile rinominare il file, ignorarlo o annullare l'intera operazione."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"ja",json:{charset:"utf-8",headers:{"Last-Translator":"test test, 2025","Language-Team":"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nkojima.imamura, 2024\nTakafumi AKAMATSU, 2024\ndevi, 2024\nkshimohata, 2024\ntest test, 2025\n"},msgstr:["Last-Translator: test test, 2025\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" は禁止されているファイルまたはフォルダ名です。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" は禁止されているファイルタイプです。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['ファイルまたはフォルダ名に "{segment}" を含めることはできません。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ファイル数の競合"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} で {count} 個のファイルが競合しています"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["残り{seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},assembling:{msgid:"assembling",msgstr:["組み立て中"]},Cancel:{msgid:"Cancel",msgstr:["キャンセル"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセルする"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},Continue:{msgid:"Continue",msgstr:["続ける"]},"Create new":{msgid:"Create new",msgstr:["新規作成"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},"Existing version":{msgid:"Existing version",msgstr:["既存バージョン"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["チャンクを一緒に組み立てるのに失敗しました。"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["ファイルのアップロードに失敗しました。"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['ファイル名の末尾に "{segment}" を付けることはできません。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無効なファイル名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},New:{msgid:"New",msgstr:["新規作成"]},"New filename":{msgid:"New filename",msgstr:["新しいファイル名"]},"New version":{msgid:"New version",msgstr:["新しいバージョン"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Preview image":{msgid:"Preview image",msgstr:["プレビュー画像"]},Rename:{msgid:"Rename",msgstr:["名前を変更"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["すべて選択"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["すべての既存ファイルを選択"]},"Select all new files":{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},Skip:{msgid:"Skip",msgstr:["スキップ"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} 個のファイルをスキップする"]},"Unknown size":{msgid:"Unknown size",msgstr:["サイズ不明"]},Upload:{msgid:"Upload",msgstr:["アップロード"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップロード"]},"Upload folders":{msgid:"Upload folders",msgstr:["フォルダのアップロード"]},"Upload from device":{msgid:"Upload from device",msgstr:["デバイスからのアップロード"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["アップロードはキャンセルされました"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["アップロードがスキップされました"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" のアップロードがスキップされました']},"Upload progress":{msgid:"Upload progress",msgstr:["アップロード進行状況"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["どのファイルを保持しますか?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"이상오, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n이상오, 2024\n"},msgstr:["Last-Translator: 이상오, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}"(은)는 금지된 파일 및 폴더 이름입니다.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"(은)는 금지된 파일 형식입니다.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['파일이나 폴더 이름에 "{segment}"(을)를 사용할 수 없습니다.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds}초 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},Cancel:{msgid:"Cancel",msgstr:["취소"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["전체 작업을 취소"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"Create new":{msgid:"Create new",msgstr:["새로 만들기"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['파일 이름은 "{segment}"(으)로 끝나야 합니다.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["잘못된 파일 이름"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New filename":{msgid:"New filename",msgstr:["새 파일 이름"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},Rename:{msgid:"Rename",msgstr:["이름 바꾸기"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["기존 파일을 모두 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["새로운 파일을 모두 선택"]},Skip:{msgid:"Skip",msgstr:["건너뛰기"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},Upload:{msgid:"Upload",msgstr:["업로드"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload folders":{msgid:"Upload folders",msgstr:["폴더 업로드"]},"Upload from device":{msgid:"Upload from device",msgstr:["장치에서 업로드"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["업로드가 취소되었습니다."]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["업로드를 건너뛰었습니다."]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 업로드를 건너뛰었습니다.']},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Edgars Andersons, 2025","Language-Team":"Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPapuass <martinsb@gmail.com>, 2024\nArmīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024\nEdgars Andersons, 2025\n"},msgstr:["Last-Translator: Edgars Andersons, 2025\nLanguage-Team: Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ir aizliegts datnes vai mapes nosaukums.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ir aizliegts datnes veids.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ir nav ļauts datnes vai mapes nosaukumā.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} nesaderīgu datņu","{count} nesaderīga datne","{count} nesaderīgas datnes"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} nesaderīgu datņu {dirname}","{count} nesaderīga datne {dirname}","{count} nesaderīgas datnes {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["Atlikušas {seconds} sekundes","Aatlikusi {seconds} sekunde","Atlikušas {seconds} sekundes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["atlicis {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["atlikušas dažas sekundes"]},assembling:{msgid:"assembling",msgstr:["sakopo"]},Cancel:{msgid:"Cancel",msgstr:["Atcelt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Atcelt visu darbību"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Atcelt augšupielādes"]},Continue:{msgid:"Continue",msgstr:["Turpināt"]},"Create new":{msgid:"Create new",msgstr:["Izveidot jaunu"]},"estimating time left":{msgid:"estimating time left",msgstr:["paredzamais atlikušais laiks"]},"Existing version":{msgid:"Existing version",msgstr:["Esošā versija"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Neizdevās apvienot gabalus"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Neizdevās augšupielādēt datni"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Datnes nosaukumi nedrīkst beigties ar "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nederīgs datnes nosaukums"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Pēdējais izmainīšanas datums nav zināms"]},New:{msgid:"New",msgstr:["Jauns"]},"New filename":{msgid:"New filename",msgstr:["Jauns datnes nosaukums"]},"New version":{msgid:"New version",msgstr:["Jauna versija"]},paused:{msgid:"paused",msgstr:["apturēta"]},"Preview image":{msgid:"Preview image",msgstr:["Priekšskatīt attēlu"]},Rename:{msgid:"Rename",msgstr:["Pārdēvēt"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Atlasīt visas izvēles rūtiņas"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Atlasīt visas esošās datnes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Atlasīt visas jaunās datnes"]},Skip:{msgid:"Skip",msgstr:["Izlaist"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Izlaist {count} datņu","Izlaist šo datni","Izlaist {count} datnes"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nezināms izmērs"]},Upload:{msgid:"Upload",msgstr:["Augšupielādēt"]},"Upload files":{msgid:"Upload files",msgstr:["Augšupielādēt datnes"]},"Upload folders":{msgid:"Upload folders",msgstr:["Augšupielādēt mapes"]},"Upload from device":{msgid:"Upload from device",msgstr:["Augšupielādēt no ierīces"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Augšupielāde tika atcelta"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Augšupielāde tika izlaista"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" augšupielāde tika izlaista']},"Upload progress":{msgid:"Upload progress",msgstr:["Augšupielādes virzība"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Kuras datnes paturēt?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu."]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"DT Navy, 2024","Language-Team":"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nDT Navy, 2024\n"},msgstr:["Last-Translator: DT Navy, 2024\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" adalah fail dan nama folder yang dilarang']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" adalah jenis fail yang dilarang']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" adalah tidak dibenarkan dalam nama fail atau folder']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} files bertindih"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail bertindih dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saat tinggal"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tinggal"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["beberapa saat lagi"]},Cancel:{msgid:"Cancel",msgstr:["batal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Batal keseluruhan operasi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["batal muat naik"]},Continue:{msgid:"Continue",msgstr:["teruskan"]},"Create new":{msgid:"Create new",msgstr:["Buat baharu"]},"estimating time left":{msgid:"estimating time left",msgstr:["jangkaan masa tinggal"]},"Existing version":{msgid:"Existing version",msgstr:["versi sedia ada"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nama fail tidak boleh berakhir dengan "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nama fail tidak sah"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tarikh terakhir diubah suai tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New filename":{msgid:"New filename",msgstr:["Nama fail baharu"]},"New version":{msgid:"New version",msgstr:["Versi baharu"]},paused:{msgid:"paused",msgstr:["Jeda"]},"Preview image":{msgid:"Preview image",msgstr:["Pratonton gambar"]},Rename:{msgid:"Rename",msgstr:["Menamakan semula"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak pilihan"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua fail yang wujud"]},"Select all new files":{msgid:"Select all new files",msgstr:["pilih semua fail baharu"]},Skip:{msgid:"Skip",msgstr:["Langkau"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Langkau fail {count}"]},"Unknown size":{msgid:"Unknown size",msgstr:["Saiz tidak diketahui"]},Upload:{msgid:"Upload",msgstr:["Muat naik"]},"Upload files":{msgid:"Upload files",msgstr:["Muat naik fail"]},"Upload folders":{msgid:"Upload folders",msgstr:["Muat naik folder"]},"Upload from device":{msgid:"Upload from device",msgstr:["Muat naik dari peranti"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Muat naik telah dibatalkan"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Muat naik telah dilangkau"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Muat naik "{folder}" telah dilangkau']},"Upload progress":{msgid:"Upload progress",msgstr:["Kemajuan muat naik"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Fail yang mana ingin disimpan?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan"]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb",json:{charset:"utf-8",headers:{"Last-Translator":"Roger Knutsen, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRoger Knutsen, 2024\n"},msgstr:["Last-Translator: Roger Knutsen, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tillatt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"Create new":{msgid:"Create new",msgstr:["Opprett ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavn må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldig filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},Rename:{msgid:"Rename",msgstr:["Omdøp"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Hopp over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Last opp mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Last opp fra enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Opplastingen er kansellert"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Opplastingen er hoppet over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Opplasting av "{folder}" er hoppet over']},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Valdnet, 2025","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPiotr Strebski <strebski@gmail.com>, 2024\nValdnet, 2025\n"},msgstr:["Last-Translator: Valdnet, 2025\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" to zabroniona nazwa pliku lub katalogu.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" jest zabronionym typem pliku.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Znak "{segment}" nie jest dozwolony w nazwie pliku lub katalogu.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},Cancel:{msgid:"Cancel",msgstr:["Anuluj"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"Create new":{msgid:"Create new",msgstr:["Utwórz nowe"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nazwy plików nie mogą kończyć się na "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nieprawidłowa nazwa pliku"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New filename":{msgid:"New filename",msgstr:["Nowa nazwa pliku"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},Rename:{msgid:"Rename",msgstr:["Zmiana nazwy"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},Skip:{msgid:"Skip",msgstr:["Pomiń"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},Upload:{msgid:"Upload",msgstr:["Wyślij"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload folders":{msgid:"Upload folders",msgstr:["Wyślij katalogi"]},"Upload from device":{msgid:"Upload from device",msgstr:["Wyślij z urządzenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Wysyłanie zostało anulowane"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Wysyłanie zostało pominięte"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Wysyłanie "{folder}" zostało pominięte']},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu katalogu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu i przeprowadzane jest rekursywne rozwiązywanie konfliktów."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"F Bausch, 2025","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\nF Bausch, 2025\n"},msgstr:["Last-Translator: F Bausch, 2025\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" é um nome de arquivo ou pasta proibido.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" é um tipo de arquivo proibido.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" não é permitido dentro de um nome de arquivo ou pasta.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} segundo restante","{seconds} segundos restantes","{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},assembling:{msgid:"assembling",msgstr:["montando"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Criar novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Falha ao montar os pedaços juntos"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Falha ao fazer o upload do arquivo"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Os nomes dos arquivos não devem terminar com "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome de arquivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de arquivo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecionar todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecionar todos os novos arquivos"]},Skip:{msgid:"Skip",msgstr:["Pular"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Pular {count} arquivo","Pular {count} arquivos","Pular {count} arquivos"]},"Skip this file":{msgid:"Skip this file",msgstr:["Pular este arquivo"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},Upload:{msgid:"Upload",msgstr:["Fazer upload"]},"Upload files":{msgid:"Upload files",msgstr:["Fazer upload de arquivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Fazer upload de pastas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Fazer upload do dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O upload foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O upload foi pulado"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['O upload de "{folder}" foi pulado']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso de upload"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta recebida é selecionada, todos os arquivos conflitantes dentro dela também serão sobrescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta recebida é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2025","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nВлад, 2024\nAlex <fedotov22091982@gmail.com>, 2024\nRoman Stepanov, 2024\nMaksim Sukharev, 2024\nАлександр, 2025\n"},msgstr:["Last-Translator: Александр, 2025\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» — это запрещенное имя файла или папки."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» — это запрещенный тип файла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» не допускается в имени файла или папки."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["осталась {seconds} секунда","осталось {seconds} секунды","осталось {seconds} секунд","осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},assembling:{msgid:"assembling",msgstr:["сборка"]},Cancel:{msgid:"Cancel",msgstr:["Отменить"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отменить операцию целиком"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"Create new":{msgid:"Create new",msgstr:["Создать новое"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Не удалось собрать части вместе"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Не удалось загрузить файл"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена файлов не должны заканчиваться на «{segment}»"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неверное имя файла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},New:{msgid:"New",msgstr:["Новый"]},"New filename":{msgid:"New filename",msgstr:["Новое имя файла"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},Rename:{msgid:"Rename",msgstr:["Переименовать"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Выбрать все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},Skip:{msgid:"Skip",msgstr:["Пропустить"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},Upload:{msgid:"Upload",msgstr:["Загрузить"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузить файлы"]},"Upload folders":{msgid:"Upload folders",msgstr:["Загрузить папки"]},"Upload from device":{msgid:"Upload from device",msgstr:["Загрузить с устройства"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Загрузка была отменена"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Загрузка была пропущена"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Загрузка «{folder}» была пропущена"]},"Upload progress":{msgid:"Upload progress",msgstr:["Прогресс загрузки"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Вы можете переименовать файл, пропустить этот файл или отменить всю операцию."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk",json:{charset:"utf-8",headers:{"Last-Translator":"Tomas Rusnak <linkermail@gmail.com>, 2024","Language-Team":"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJozef Gaal <preklady@mayday.sk>, 2024\nTomas Rusnak <linkermail@gmail.com>, 2024\n"},msgstr:["Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ je zakázaný názov súboru alebo priečinka."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je zákazaný typ súboru.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}“ je zakázané v názve súboru alebo adresára.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} súbor má konflikt","{count} súbory majú konflikt","{count} súborov má konflikt","{count} súborov má konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} súborový konflikt v {dirname}","{count} súborové konflikty v {dirname}","{count} súborových konfliktov v {dirname}","{count} súborových konfliktov v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúnd zostáva"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} zostáva"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zostáva niekoľko sekúnd"]},Cancel:{msgid:"Cancel",msgstr:["Zrušiť"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušiť nahrávanie"]},Continue:{msgid:"Continue",msgstr:["Pokračovať"]},"Create new":{msgid:"Create new",msgstr:["Vytvoriť nové"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovanie zostávajúceho času"]},"Existing version":{msgid:"Existing version",msgstr:["Existujúca verzia"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Názvy súborov nesmú končiť znakom "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný názov súboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dátum poslednej úpravy neznámy"]},New:{msgid:"New",msgstr:["Nový"]},"New filename":{msgid:"New filename",msgstr:["Nový názov súboru"]},"New version":{msgid:"New version",msgstr:["Nová verzia"]},paused:{msgid:"paused",msgstr:["pozastavené"]},"Preview image":{msgid:"Preview image",msgstr:["Náhľad obrázka"]},Rename:{msgid:"Rename",msgstr:["Premenovať"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označiť všetky výberové políčka"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},Skip:{msgid:"Skip",msgstr:["Preskočiť"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskočiť tento súbor","Preskočiť {count} súbory","Preskočiť {count} súborov","Preskočiť {count} súborov"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznáma veľkosť"]},Upload:{msgid:"Upload",msgstr:["Nahrať"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrať súbory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrať priečinky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrať zo zariadenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávanie bolo zrušené"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrávanie bolo preskočené"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nahrávanie "{folder}" bolo preskočené']},"Upload progress":{msgid:"Upload progress",msgstr:["Priebeh nahrávania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete ponechať?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru."]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Simon Bogina, 2024","Language-Team":"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJan Kraljič <jan.kraljic@patware.eu>, 2024\nSimon Bogina, 2024\n"},msgstr:["Last-Translator: Simon Bogina, 2024\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" je prepovedano ime datoteka ali mape.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je prepovedan tip datoteke.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ni dovoljeno v imenu datoteke ali mape.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["1{count} datoteka je v konfliktu","1{count} datoteki sta v konfiktu","1{count} datotek je v konfliktu","{count} datotek je v konfliktu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} datoteka je v konfiktu v {dirname}","{count} datoteki sta v konfiktu v {dirname}","{count} datotek je v konfiktu v {dirname}","{count} konfliktov datotek v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Cancel:{msgid:"Cancel",msgstr:["Prekliči"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Prekliči celotni postopek"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},Continue:{msgid:"Continue",msgstr:["Nadaljuj"]},"Create new":{msgid:"Create new",msgstr:["Ustvari nov"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjujem čas do konca"]},"Existing version":{msgid:"Existing version",msgstr:["Obstoječa različica"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Imena datotek se ne smejo končati s "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nepravilno ime datoteke"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum zadnje spremembe neznan"]},New:{msgid:"New",msgstr:["Nov"]},"New filename":{msgid:"New filename",msgstr:["Novo ime datoteke"]},"New version":{msgid:"New version",msgstr:["Nova različica"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Preview image":{msgid:"Preview image",msgstr:["Predogled slike"]},Rename:{msgid:"Rename",msgstr:["Preimenuj"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Izberi vsa potrditvena polja"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Označi vse obstoječe datoteke"]},"Select all new files":{msgid:"Select all new files",msgstr:["Označi vse nove datoteke"]},Skip:{msgid:"Skip",msgstr:["Preskoči"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskoči datoteko","Preskoči {count} datoteki","Preskoči {count} datotek","Preskoči {count} datotek"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznana velikost"]},Upload:{msgid:"Upload",msgstr:["Naloži"]},"Upload files":{msgid:"Upload files",msgstr:["Naloži datoteke"]},"Upload folders":{msgid:"Upload folders",msgstr:["Naloži mape"]},"Upload from device":{msgid:"Upload from device",msgstr:["Naloži iz naprave"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nalaganje je bilo preklicano"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nalaganje je bilo preskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nalaganje "{folder}" je bilo preskočeno']},"Upload progress":{msgid:"Upload progress",msgstr:["Napredek nalaganja"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Katere datoteke želite obdržati?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Izbrati morate vsaj eno različico vsake datoteke da nadaljujete."]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2024","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nИван Пешић, 2024\n"},msgstr:["Last-Translator: Иван Пешић, 2024\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” је забрањено име фајла или фолдера."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” је забрањен тип фајла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}” није дозвољено унутар имена фајла или фолдера."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},Cancel:{msgid:"Cancel",msgstr:["Откажи"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отказује комплетну операцију"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"Create new":{msgid:"Create new",msgstr:["Креирај ново"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена фајлова не смеју да се завршавају на „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име долазног фајла ће се додати број."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неисправно име фајла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New filename":{msgid:"New filename",msgstr:["Ново име фајла"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},Rename:{msgid:"Rename",msgstr:["Промени име"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},Skip:{msgid:"Skip",msgstr:["Прескочи"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},Upload:{msgid:"Upload",msgstr:["Отпреми"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload folders":{msgid:"Upload folders",msgstr:["Отпреми фолдере"]},"Upload from device":{msgid:"Upload from device",msgstr:["Отпреми са уређаја"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Отпремање је отказано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Отпремање је прескочено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Отпремање „{folder}”је прескочено"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2025","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2025\n"},msgstr:["Last-Translator: Magnus Höglund, 2025\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" är ett förbjudet fil- eller mappnamn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" är en förbjuden filtyp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" är inte tillåtet i ett fil- eller mappnamn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekunder kvar","{seconds} sekunder kvar"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},assembling:{msgid:"assembling",msgstr:["Sammanställer"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"Create new":{msgid:"Create new",msgstr:["Skapa ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Misslyckades med att sammanställa delarna"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Kunde inte ladda upp filen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnamn får inte sluta med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ogiltigt filnamn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnamn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},Rename:{msgid:"Rename",msgstr:["Byt namn"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},Skip:{msgid:"Skip",msgstr:["Hoppa över"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},Upload:{msgid:"Upload",msgstr:["Ladda upp"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ladda upp mappar"]},"Upload from device":{msgid:"Upload from device",msgstr:["Ladda upp från enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Uppladdningen har avbrutits"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Uppladdningen har hoppats över"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Uppladdningen av "{folder}" har hoppats över']},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2025","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2025\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2025\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" dosya ya da klasör adına izin verilmiyor.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" dosya türüne izin verilmiyor.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Bir dosya ya da klasör adında "{segment}" ifadesine izin verilmiyor.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı","{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},assembling:{msgid:"assembling",msgstr:["birleştiriliyor"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"Create new":{msgid:"Create new",msgstr:["Yeni ekle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Parçalar birleştirilemedi"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Dosya yüklenemedi"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dosya adları "{segment}" ile bitmemeli.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Dosya adı geçersiz"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New filename":{msgid:"New filename",msgstr:["Yeni dosya adı"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},Rename:{msgid:"Rename",msgstr:["Yeniden adlandır"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},Skip:{msgid:"Skip",msgstr:["Atla"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} dosyayı atla","{count} dosyayı atla"]},"Skip this file":{msgid:"Skip this file",msgstr:["Bu dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},Upload:{msgid:"Upload",msgstr:["Yükle"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload folders":{msgid:"Upload folders",msgstr:["Klasörleri yükle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Aygıttan yükle"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yükleme iptal edildi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yükleme atlandı"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" klasörünün yüklenmesi atlandı']},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2025","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2025\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2025\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" не є дозволеним ім\'ям файлу або каталогу.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" не є дозволеним типом файлу.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" не дозволене сполучення символів в назві файлу або каталогу.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} секунда залишилася","{seconds} секунди залишилося","{seconds} секунд залишилося","{seconds} секунд залишилося"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},assembling:{msgid:"assembling",msgstr:["збірка"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"Create new":{msgid:"Create new",msgstr:["Створити новий"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Не вдалося зібрати частинки докупи"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Не вдалося завантажити файл"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Ім\'я файлів не можуть закінчуватися на "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Недійсне ім'я файлу"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New filename":{msgid:"New filename",msgstr:["Нове ім'я файлу"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},Rename:{msgid:"Rename",msgstr:["Перейменувати"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},Skip:{msgid:"Skip",msgstr:["Пропустити"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Пропустити {count} файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Skip this file":{msgid:"Skip this file",msgstr:["Пропустити цей файл"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},Upload:{msgid:"Upload",msgstr:["Завантажити"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload folders":{msgid:"Upload folders",msgstr:["Завантажити каталоги"]},"Upload from device":{msgid:"Upload from device",msgstr:["Завантажити з пристрою"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Завантаження скасовано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Завантаження пропущено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Завантаження "{folder}" пропущено']},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025","Language-Team":"Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nKhurshid Ibatov <x.ibatov@dtsj.uz>, 2025\n"},msgstr:["Last-Translator: Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" taqiqlangan fayl yoki papka nomidir.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" taqiqlangan fayl turi hisoblanadi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" fayl yoki papka nomi ichida ruxsat berilmaydi.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fayllar ziddiyati"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count}fayl ziddiyatlari {dirname} da"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} soniya qoldi"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} qoldi"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir necha soniya qoldi"]},assembling:{msgid:"assembling",msgstr:["yig'ish"]},Cancel:{msgid:"Cancel",msgstr:["Bekor qilish"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yuklashni bekor qilish"]},Continue:{msgid:"Continue",msgstr:["Davom eting"]},"Create new":{msgid:"Create new",msgstr:["Yangi yaratish"]},"estimating time left":{msgid:"estimating time left",msgstr:["qolgan vaqtni hisoblash"]},"Existing version":{msgid:"Existing version",msgstr:["Mavjud versiya"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Bo'laklarni birlashtirib bo'lmadi"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Fayl yuklanmadi"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Fayl nomlari bilan tugamasligi kerak "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Fayl nomi noto‘g‘ri"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},New:{msgid:"New",msgstr:["Yangi"]},"New filename":{msgid:"New filename",msgstr:["Yangi nom faylga"]},"New version":{msgid:"New version",msgstr:["Yangi versiya"]},paused:{msgid:"paused",msgstr:["tanaffus"]},"Preview image":{msgid:"Preview image",msgstr:["Rasmni oldindan ko'rish"]},Rename:{msgid:"Rename",msgstr:["Qayta nomlash"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},"Select all new files":{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},Skip:{msgid:"Skip",msgstr:["Oʻtkazib yuborish"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Oʻtkazib yuborish {count} fayllarini"]},"Unknown size":{msgid:"Unknown size",msgstr:["Noma'lum o'lcham"]},Upload:{msgid:"Upload",msgstr:["Yuklash"]},"Upload files":{msgid:"Upload files",msgstr:["Fayllarni yuklash"]},"Upload folders":{msgid:"Upload folders",msgstr:["Jildlarni yuklash"]},"Upload from device":{msgid:"Upload from device",msgstr:["Qurilmadan yuklash"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yuklash bekor qilindi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yuklash oʻtkazib yuborildi"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:[' "{folder}" ni yuklash bekor qilindi']},"Upload progress":{msgid:"Upload progress",msgstr:["Yuklash jarayoni"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Gloryandel, 2024","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGloryandel, 2024\n"},msgstr:["Last-Translator: Gloryandel, 2024\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是被禁止的文件名或文件夹名。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是被禁止的文件类型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允许包含在文件名或文件夹名中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整个操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"Create new":{msgid:"Create new",msgstr:["新建"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["服务端版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['文件名不得以 "{segment}" 结尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果同时选择两个版本,则上传文件的名称中将添加一个数字。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["无效文件名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},New:{msgid:"New",msgstr:["新建"]},"New filename":{msgid:"New filename",msgstr:["新文件名"]},"New version":{msgid:"New version",msgstr:["上传版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},Rename:{msgid:"Rename",msgstr:["重命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["保留所有服务端版本"]},"Select all new files":{msgid:"Select all new files",msgstr:["保留所有上传版本"]},Skip:{msgid:"Skip",msgstr:["跳过"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},Upload:{msgid:"Upload",msgstr:["上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Upload folders":{msgid:"Upload folders",msgstr:["上传文件夹"]},"Upload from device":{msgid:"Upload from device",msgstr:["从设备上传"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上传已取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上传已跳过"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['已跳过上传"{folder}"']},"Upload progress":{msgid:"Upload progress",msgstr:["上传进度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以重命名文件、跳过此文件或取消整个操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择保留一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2025","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nCafé Tango, 2025\n"},msgstr:["Last-Translator: Café Tango, 2025\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是禁止使用的檔案或資料夾名稱。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是禁止使用的檔案類型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允許出現在檔案或資料夾名稱中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},assembling:{msgid:"assembling",msgstr:["組裝"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"Create new":{msgid:"Create new",msgstr:["創建新"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["組裝這些部分時失敗"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["上傳文件失敗"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['檔案名不得以 "{segment}" 結尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["若您選取兩個版本,傳入檔案的名稱將會新增編號。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無效的檔案名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},New:{msgid:"New",msgstr:["新增"]},"New filename":{msgid:"New filename",msgstr:["新檔案名"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},Rename:{msgid:"Rename",msgstr:["重新命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},Skip:{msgid:"Skip",msgstr:["跳過"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},Upload:{msgid:"Upload",msgstr:["上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload folders":{msgid:"Upload folders",msgstr:["上傳資料夾"]},"Upload from device":{msgid:"Upload from device",msgstr:["從裝置上傳"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上傳已被取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上傳已被跳過"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 的上傳已被跳過']},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以選擇重新命名檔案、跳過此檔案或取消整個操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>S.addTranslation(e.locale,e.json)));const L=S.build(),N=L.ngettext.bind(L),F=L.gettext.bind(L);class U extends Error{constructor(e){super(F("Upload has been cancelled"),{cause:e})}}const E=(0,h.YK)().setApp("@nextcloud/upload").detectUser().build();async function I(e,t,s){const i={headers:{},onUploadProgress:()=>{},onUploadRetry:()=>{},retries:5,...s};let n;return n=t instanceof Blob?t:await t(),i.destinationFile&&(i.headers.Destination=i.destinationFile),i.headers["Content-Type"]||(i.headers["Content-Type"]="application/octet-stream"),await c.Ay.request({method:"PUT",url:e,data:n,signal:i.signal,onUploadProgress:i.onUploadProgress,headers:i.headers,"axios-retry":{retries:i.retries,retryDelay:(e,t)=>(0,p.Nv)(e,t,1e3),retryCondition:e=>507!==e.status&&(423===e.status||(0,p.Gp)(e)),onRetry:i.onUploadRetry}})}(0,p.Ay)(c.Ay,{retries:0});const P=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},z=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var B=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(B||{});class D{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,i){const n=Math.min(z()>0?Math.ceil(s/z()):1,1e4);this._source=e,this._isChunked=t&&z()>0&&n>1,this._chunks=this._isChunked?n:1,this._size=s,this._file=i,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}}const R=e=>"FileSystemFileEntry"in window&&e instanceof FileSystemFileEntry,O=e=>"FileSystemEntry"in window&&e instanceof FileSystemEntry;class j extends File{_originalName;_path;_children;constructor(e){super([],(0,r.P8)(e),{type:"httpd/unix-directory",lastModified:0}),this._children=new Map,this._originalName=(0,r.P8)(e),this._path=e}get size(){return this.children.reduce(((e,t)=>e+t.size),0)}get lastModified(){return this.children.reduce(((e,t)=>Math.max(e,t.lastModified)),0)}get originalName(){return this._originalName}get children(){return Array.from(this._children.values())}get webkitRelativePath(){return this._path}getChild(e){return this._children.get(e)??null}async addChildren(e){for(const t of e)await this.addChild(t)}async addChild(e){const t=this._path&&`${this._path}/`;if(R(e))e=await new Promise(((t,s)=>e.file(t,s)));else if("FileSystemDirectoryEntry"in window&&e instanceof FileSystemDirectoryEntry){const s=e.createReader(),i=await new Promise(((e,t)=>s.readEntries(e,t))),n=new j(`${t}${e.name}`);return await n.addChildren(i),void this._children.set(e.name,n)}const s=e.webkitRelativePath??e.name;if(s.includes("/")){if(!s.startsWith(this._path))throw new Error(`File ${s} is not a child of ${this._path}`);const i=s.slice(t.length),n=(0,r.P8)(i);if(n===i)this._children.set(n,e);else{const s=i.slice(0,i.indexOf("/"));if(this._children.has(s))await this._children.get(s).addChild(e);else{const i=new j(`${t}${s}`);await i.addChild(e),this._children.set(s,i)}}}else this._children.set(e.name,e)}}class M extends v.m{_done=0;_total=0;_progress=0;_status=0;_startTime=-1;_elapsedTime=0;_speed=-1;_eta=1/0;_cutoffTime=2.5;constructor(e={}){super(),e.start&&this.resume(),e.total&&this.update(0,e.total),this._cutoffTime=e.cutoffTime??2.5}add(e){this.update(this._done+e)}update(e,t){if(2!==this.status)return;t&&t>0&&(this._total=t);const s=e-this._done,i=(Date.now()-this._startTime)/1e3;this._startTime=Date.now(),this._elapsedTime+=i,this._done=e,this._progress=this._done/this._total;const n=this._cutoffTime+i;if(this._elapsedTime>n){const e=i/(i+1/this._cutoffTime),t=this._done-s+(1-e)*s;this._speed=Math.round(t/this._elapsedTime)}else if(-1===this._speed&&this._elapsedTime>i){const t=(this._total-e)/(e/this._elapsedTime);(this._eta!==1/0||t<=2*this._cutoffTime)&&(this._eta=t)}this._speed>0&&(this._eta=Math.round((this._total-this._done)/this._speed)),this.dispatchTypedEvent("update",new CustomEvent("update",{cancelable:!1}))}reset(){this._done=0,this._total=0,this._progress=0,this._elapsedTime=0,this._eta=1/0,this._speed=-1,this._startTime=-1,this._status=0,this.dispatchTypedEvent("reset",new CustomEvent("reset"))}pause(){2===this._status&&(this._status=1,this._elapsedTime+=(Date.now()-this._startTime)/1e3,this.dispatchTypedEvent("pause",new CustomEvent("pause")))}resume(){2!==this._status&&(this._startTime=Date.now(),this._status=2,this.dispatchTypedEvent("resume",new CustomEvent("resume")))}get status(){return this._status}get progress(){return Math.round(1e4*this._progress)/100}get time(){return this._eta}get timeReadable(){if(this._eta===1/0)return F("estimating time left");if(this._eta<10)return F("a few seconds left");if(this._eta<60)return N("{seconds} seconds left","{seconds} seconds left",this._eta,{seconds:this._eta});const e=String(Math.floor(this._eta/3600)).padStart(2,"0"),t=String(Math.floor(this._eta%3600/60)).padStart(2,"0"),s=String(this._eta%60).padStart(2,"0");return F("{time} left",{time:`${e}:${t}:${s}`})}get speed(){return this._speed}get speedReadable(){return this._speed>0?`${(0,o.v7)(this._speed,!0)}∕s`:""}}var V=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(V||{});class ${_destinationFolder;_isPublic;_customHeaders;_uploadQueue=[];_jobQueue=new g.A({concurrency:(0,d.F)().files?.chunked_upload?.max_parallel_count??5});_queueSize=0;_queueProgress=0;_queueStatus=0;_eta=new M;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,this._customHeaders={},!t){const s=`${o.PY}${o.lJ}`;let i;if(e)i="anonymous";else{const e=(0,a.HW)()?.uid;if(!e)throw new Error("User is not logged in");i=e}t=new o.vd({id:0,owner:i,permissions:o.aX.ALL,root:o.lJ,source:s})}this.destination=t,E.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:z()})}get destination(){return this._destinationFolder}set destination(e){if(!e||e.type!==o.pt.Folder||!e.source)throw new Error("Invalid destination folder");E.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get customHeaders(){return structuredClone(this._customHeaders)}setCustomHeader(e,t=""){this._customHeaders[e]=t}deleteCustomerHeader(e){delete this._customHeaders[e]}get queue(){return this._uploadQueue}reset(){this._eta.reset(),0===this._uploadQueue.length&&0===this._jobQueue.size||(this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0,E.debug("Uploader state reset"))}pause(){this._eta.pause(),this._jobQueue.pause(),this._queueStatus=2,this.updateStats(),E.debug("Uploader paused")}start(){this._eta.resume(),this._jobQueue.start(),this._queueStatus=1,this.updateStats(),E.debug("Uploader resumed")}get eta(){return this._eta}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);if(this._eta.update(t,e),this._queueSize=e,this._queueProgress=t,2!==this._queueStatus){const e=this._uploadQueue.find((({status:e})=>[B.INITIALIZED,B.UPLOADING,B.ASSEMBLING].includes(e)));this._jobQueue.size>0||e?this._queueStatus=1:(this.eta.reset(),this._queueStatus=0)}}addNotifier(e){this._notifiers.push(e)}_notifyAll(e){for(const t of this._notifiers)try{t(e)}catch(t){E.warn("Error in upload notifier",{error:t,source:e.source})}}batchUpload(e,t,s){return s||(s=async e=>e),new m.A((async(i,n,a)=>{const r=new j("");await r.addChildren(t);const l=`${this.root.replace(/\/$/,"")}/${e.replace(/^\//,"")}`,d=new D(l,!1,0,r);d.status=B.UPLOADING,this._uploadQueue.push(d),E.debug("Starting new batch upload",{target:l});try{const t=(0,o.H4)(this.root,this._customHeaders),n=this.uploadDirectory(e,r,s,t);a((()=>n.cancel()));const l=await n;d.status=B.FINISHED,i(l)}catch(e){(0,c.FZ)(e)||e instanceof U?(E.info("Upload cancelled by user",{error:e}),d.status=B.CANCELLED,n(new U(e))):(E.error("Error in batch upload",{error:e}),d.status=B.FAILED,n(e))}finally{this._notifyAll(d),this.updateStats()}}))}createDirectory(e,t,s){const i=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,""),n=`${this.root.replace(/\/$/,"")}/${i.replace(/^\//,"")}`;if(!t.name)throw new Error("Can not create empty directory");const a=new D(n,!1,0,t);return this._uploadQueue.push(a),new m.A((async(e,n,o)=>{const r=new AbortController;o((()=>r.abort())),a.signal.addEventListener("abort",(()=>n(F("Upload has been cancelled")))),await this._jobQueue.add((async()=>{a.status=B.UPLOADING;try{await s.createDirectory(i,{signal:r.signal}),e(a)}catch(s){(0,c.FZ)(s)||s instanceof U?(a.status=B.CANCELLED,n(new U(s))):s&&"object"==typeof s&&"status"in s&&405===s.status?(E.debug("Directory already exists, writing into it",{directory:t.name}),a.status=B.FINISHED,e(a)):(a.status=B.FAILED,n(s))}finally{this._notifyAll(a),this.updateStats()}}))}))}uploadDirectory(e,t,s,i){const n=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,"");return new m.A((async(a,o,r)=>{const l=new AbortController;r((()=>l.abort()));const d=await s(t.children,n);if(!1===d)return E.debug("Upload canceled by user",{directory:t}),void o(new U("Conflict resolution cancelled by user"));if(0===d.length&&t.children.length>0)return E.debug("Skipping directory, as all files were skipped by user",{directory:t}),void a([]);const c=[],m=[];l.signal.addEventListener("abort",(()=>{c.forEach((e=>e.cancel())),m.forEach((e=>e.cancel()))})),E.debug("Start directory upload",{directory:t});try{t.name&&(m.push(this.createDirectory(e,t,i)),await m.at(-1));for(const e of d)e instanceof j?c.push(this.uploadDirectory(n,e,s,i)):m.push(this.upload(`${n}/${e.name}`,e));a([await Promise.all(m),...await Promise.all(c)].flat())}catch(e){l.abort(e),o(e)}}))}upload(e,t,s,n=5){const o=`${(s=s||this.root).replace(/\/$/,"")}/${e.replace(/^\//,"")}`,{origin:l}=new URL(o),g=l+(0,r.O0)(o.slice(l.length));return this.eta.resume(),E.debug(`Uploading ${t.name} to ${g}`),new m.A((async(e,s,r)=>{R(t)&&(t=await new Promise((e=>t.file(e,s))));const l=t,m=(0,d.F)().dav?.public_shares_chunking??!1,u=z("size"in l?l.size:void 0),h=this._isPublic&&!m||0===u||"size"in l&&l.size<u,v=new D(o,!h,l.size,l);if(this._uploadQueue.push(v),this.updateStats(),r(v.cancel),h){E.debug("Initializing regular upload",{file:l,upload:v});const t=await P(l,0,v.size),i=async()=>{try{v.response=await I(g,t,{signal:v.signal,onUploadProgress:({bytes:e})=>{v.uploaded+=.9*e,this.updateStats()},onUploadRetry:()=>{v.uploaded=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(l),"Content-Type":l.type}}),v.uploaded=v.size,this.updateStats(),E.debug(`Successfully uploaded ${l.name}`,{file:l,upload:v}),e(v)}catch(e){if((0,c.FZ)(e)||e instanceof U)return v.status=B.CANCELLED,void s(new U(e));e?.response&&(v.response=e.response),v.status=B.FAILED,E.error(`Failed uploading ${l.name}`,{error:e,file:l,upload:v}),s(F("Failed to upload the file"))}this._notifyAll(v)};this._jobQueue.add(i),this.updateStats()}else{E.debug("Initializing chunked upload",{file:l,upload:v});const t=await async function(e,t=5,s=!1){let n;n=s?`${(0,f.$_)()}/public.php/dav/uploads/${(0,i.G)()}`:(0,f.dC)(`dav/uploads/${(0,a.HW)()?.uid}`);const o=`${n}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,r=e?{Destination:e}:void 0;return await c.Ay.request({method:"MKCOL",url:o,headers:r,"axios-retry":{retries:t,retryDelay:(e,t)=>(0,p.Nv)(e,t,1e3)}}),E.debug("Created temporary upload workspace",{url:o}),o}(g,n,this._isPublic),o=[];for(let e=0;e<v.chunks;e++){const s=e*u,i=Math.min(s+u,v.size),a=()=>P(l,s,u),r=()=>{let o=0;return I(`${t}/${e+1}`,a,{signal:v.signal,destinationFile:g,retries:n,onUploadProgress:({bytes:e})=>{const t=.9*e;o+=t,v.uploaded+=t,this.updateStats()},onUploadRetry:()=>{v.uploaded-=o,o=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(l),"OC-Total-Length":l.size,"Content-Type":"application/octet-stream"}}).then((()=>{v.uploaded+=i-s-o,this.updateStats()})).catch((t=>{if(507===t?.response?.status)throw E.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:v}),v.cancel(),v.status=B.FAILED,t;throw(0,c.FZ)(t)||(E.error(`Chunk ${e+1} ${s} - ${i} uploading failed`,{error:t,upload:v}),v.cancel(),v.status=B.FAILED),t}))};o.push(this._jobQueue.add(r))}const r=async()=>{try{await Promise.all(o),v.status=B.ASSEMBLING,this.updateStats(),v.response=await c.Ay.request({method:"MOVE",url:`${t}/.file`,headers:{...this._customHeaders,...this._mtimeHeader(l),"OC-Total-Length":l.size,Destination:g}}),v.status=B.FINISHED,this.updateStats(),E.debug(`Successfully uploaded ${l.name}`,{file:l,upload:v}),e(v)}catch(e){(0,c.FZ)(e)||e instanceof U?(v.status=B.CANCELLED,s(new U(e))):(v.status=B.FAILED,s(F("Failed to assemble the chunks together"))),c.Ay.request({method:"DELETE",url:`${t}`})}finally{this._notifyAll(v)}};this._jobQueue.add(r)}return this._jobQueue.onIdle().then((()=>this.reset())),v}))}_mtimeHeader(e){const t=Math.floor(e.lastModified/1e3);return t>0?{"X-OC-Mtime":t}:{}}}function W(e,t,s,i,n,a,o,r){var l="function"==typeof e?e.options:e;return t&&(l.render=t,l.staticRenderFns=s,l._compiled=!0),a&&(l._scopeId="data-v-"+a),{exports:e,options:l}}const H=W({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,q=W({name:"FolderUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,Y=W({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,G=W({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports;function K(e){const t=(0,n.$V)((()=>Promise.all([s.e(4208),s.e(1656)]).then(s.bind(s,11656)))),{promise:i,reject:a,resolve:r}=Promise.withResolvers();return(0,T.Ss)(t,{error:e,validateFilename:o.KT},((...e)=>{const[{skip:t,rename:s}]=e;t?r(!1):s?r(s):a()})),i}function Q(e,t){return J(e,t).length>0}function J(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t="basename"in e?e.basename:e.name;return-1!==s.indexOf(t)}))}const X=W((0,n.pM)({name:"UploadPicker",components:{IconCancel:H,IconFolderUpload:q,IconPlus:Y,IconUpload:G,NcActionButton:A.A,NcActionCaption:b.A,NcActionSeparator:y.A,NcActions:C.A,NcButton:k.A,NcIconSvgWrapper:_.A,NcProgressBar:x.A},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},primary:{type:Boolean,default:!1},destination:{type:o.vd,default:void 0},allowFolders:{type:Boolean,default:!1},content:{type:[Array,Function],default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},setup:()=>({t:F,progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`}),data:()=>({newFileMenuEntries:[],openedMenu:!1,uploadManager:Z()}),computed:{menuEntriesUpload(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.UploadFromDevice))},menuEntriesNew(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.CreateNew))},menuEntriesOther(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.Other))},canUploadFolders(){return this.allowFolders&&"webkitdirectory"in document.createElement("input")},queue(){return this.uploadManager.queue},hasFailure(){return this.queue.some((e=>e.status===B.FAILED))},isAssembling(){return this.queue.some((e=>e.status===B.ASSEMBLING))},isUploading(){return this.queue.some((e=>e.status!==B.CANCELLED))},isOnlyAssembling(){return this.isAssembling&&this.queue.every((e=>0===e.size||e.status===B.ASSEMBLING||e.status===B.FINISHED))},isPaused(){return this.uploadManager.info?.status===V.PAUSED},buttonLabel(){return this.noMenu?F("Upload"):F("New")},haveMenu(){return!((this.noMenu||0===this.newFileMenuEntries.length)&&!this.canUploadFolders)}},watch:{allowFolders:{immediate:!0,handler(){"function"!=typeof this.content&&this.allowFolders&&E.error("[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function")}},destination(e){this.setDestination(e)},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),(0,w.C)("u",this.onKeyDown,{stop:!0,prevent:!0,shift:!0}),(0,w.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),E.debug("UploadPicker initialised")},methods:{etaTimeAndSpeed(){const e=this.uploadManager.eta.speedReadable;return e?`${this.uploadManager.eta.timeReadable} (${e})`:this.uploadManager.eta.timeReadable},async onClick(e){e.handler(this.destination,await this.getContent().catch((()=>[])))},onTriggerPick(e=!1){const t=this.$refs.input;this.canUploadFolders&&(t.webkitdirectory=e),this.$nextTick((()=>t.click()))},async getContent(e){return Array.isArray(this.content)?this.content:await this.content(e)},async onPick(){const e=this.$refs.input,t=e.files?Array.from(e.files):[];try{await this.uploadManager.batchUpload("",t,(s=this.getContent,async(e,t)=>{try{const i=await s(t).catch((()=>[])),n=J(e,i);if(n.length>0){const{selected:s,renamed:a}=await ee(t,n,i,{recursive:!0});e=[...e.filter((e=>!n.includes(e))),...s,...a]}const a=[];for(const t of e)try{(0,o.KT)(t.name),a.push(t)}catch(s){if(!(s instanceof o.di))throw E.error(`Unexpected error while validating ${t.name}`,{error:s}),s;let i=await K(s);!1!==i&&(i=(0,o.E6)(i,e.map((e=>e.name))),Object.defineProperty(t,"name",{value:i}),a.push(t))}if(0===a.length&&e.length>0){const e=(0,r.P8)(t);(0,T.cf)(e?F('Upload of "{folder}" has been skipped',{folder:e}):F("Upload has been skipped"))}return a}catch(e){return E.debug("Upload has been cancelled",{error:e}),(0,T.I9)(F("Upload has been cancelled")),!1}}))}catch(e){E.debug("Error while uploading",{error:e})}finally{this.resetForm()}var s},resetForm(){const e=this.$refs.form;e?.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.resetForm()},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,o.m1)(e)):E.debug("Invalid destination")},onUploadCompletion(e){e.status===B.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)},onKeyDown(e){if("u"===e.key){if(this.haveMenu)return void(this.openedMenu=!0);this.onTriggerPick()}"Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1)}}}),(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.haveMenu?t("NcActions",{attrs:{"aria-label":e.buttonLabel,"menu-name":e.buttonLabel,open:e.openedMenu,type:e.primary?"primary":"secondary"},on:{"update:open":function(t){e.openedMenu=t}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[t("NcActionCaption",{attrs:{name:e.t("Upload from device")}}),t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file","close-after-click":!0},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,337456192)},[e._v(" "+e._s(e.t("Upload files"))+" ")]),e.canUploadFolders?t("NcActionButton",{attrs:{"close-after-click":"","data-cy-upload-picker-add-folders":"","data-cy-upload-picker-menu-entry":"upload-folder"},on:{click:function(t){return e.onTriggerPick(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconFolderUpload",{staticStyle:{color:"var(--color-primary-element)"},attrs:{size:20}})]},proxy:!0}],null,!1,1037549157)},[e._v(" "+e._s(e.t("Upload folders"))+" ")]):e._e(),e.noMenu?e._e():e._l(e.menuEntriesUpload,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])})),!e.noMenu&&e.menuEntriesNew.length>0?[t("NcActionSeparator"),t("NcActionCaption",{attrs:{name:e.t("Create new")}}),e._l(e.menuEntriesNew,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e(),!e.noMenu&&e.menuEntriesOther.length>0?[t("NcActionSeparator"),e._l(e.menuEntriesOther,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e()],2):t("NcButton",{attrs:{"aria-label":e.buttonLabel,disabled:e.disabled,"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file",type:e.primary?"primary":"secondary"},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0},e.isUploading?null:{key:"default",fn:function(){return[e._v(" "+e._s(e.buttonLabel)+" ")]},proxy:!0}],null,!0)}),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.t("Upload progress"),"aria-describedby":e.progressTimeId,"data-cy-upload-picker-progress":"",error:e.hasFailure,value:e.uploadManager.eta.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId,"data-cy-upload-picker-progress-label":""}},[e.isPaused?t("span",[e._v(" "+e._s(e.t("paused"))+" ")]):e.isOnlyAssembling?t("span",[e._v(" "+e._s(e.t("assembling"))+" ")]):t("span",{attrs:{title:e.etaTimeAndSpeed()}},[e._v(" "+e._s(e.uploadManager.eta.timeReadable)+" "),e.uploadManager.eta.speedReadable&&e.uploadManager.eta.time>=60?t("span",[e._v(" ("+e._s(e.uploadManager.eta.speedReadable)+") ")]):e._e()])])],1),e.isUploading&&!e.isOnlyAssembling?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.t("Cancel uploads"),"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCancel",{attrs:{size:20}})]},proxy:!0}],null,!1,3076329829)}):e._e(),t("input",{ref:"input",staticClass:"hidden-visually",attrs:{accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":"",type:"file"},on:{change:e.onPick}})],1):e._e()}),[],0,0,"12e6e354").exports;function Z(e=(0,i.f)(),t=!1){return(t||void 0===window._nc_uploader)&&(window._nc_uploader=new $(e)),window._nc_uploader}async function ee(e,t,i,a){const o=(0,n.$V)((()=>Promise.all([s.e(4208),s.e(3485)]).then(s.bind(s,13485))));return new Promise(((s,r)=>{const l=new n.Ay({name:"ConflictPickerRoot",render:n=>n(o,{props:{dirname:e,conflicts:t,content:i,recursiveUpload:!0===a?.recursive},on:{submit(e){s(e),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)},cancel(e){r(e??new Error("Canceled")),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)}}})});l.$mount(),document.body.appendChild(l.$el)}))}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=(t,s,i,n)=>{if(!s){var a=1/0;for(c=0;c<e.length;c++){s=e[c][0],i=e[c][1],n=e[c][2];for(var r=!0,l=0;l<s.length;l++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](s[l])))?s.splice(l--,1):(r=!1,n<a&&(a=n));if(r){e.splice(c--,1);var d=i();void 0!==d&&(t=d)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[s,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 s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,s)=>(o.f[s](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{640:"b2fa23a809053c6305c5",1656:"05d90ab05fafdbaeed35",3485:"b3e801849a79b5a466ec",5771:"a4e2a98efcfb7393c5bd",5810:"8dfb2392d7107957a510",7432:"126e4e5eedf7af9a92fc",7807:"382c331365e38d2fb775"}[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),s={},i="nextcloud:",o.l=(e,t,n,a)=>{if(s[e])s[e].push(t);else{var r,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==i+n){r=m;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,o.nc&&r.setAttribute("nonce",o.nc),r.setAttribute("data-webpack",i+n),r.src=e),s[e]=[t];var g=(t,i)=>{r.onerror=r.onload=null,clearTimeout(u);var n=s[e];if(delete s[e],r.parentNode&&r.parentNode.removeChild(r),n&&n.forEach((e=>e(i))),t)return t(i)},u=setTimeout(g.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=g.bind(null,r.onerror),r.onload=g.bind(null,r.onload),l&&document.head.appendChild(r)}},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=2882,(()=>{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 s=t.getElementsByTagName("script");if(s.length)for(var i=s.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=s[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={2882:0,5810:0};o.f.j=(t,s)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)s.push(i[2]);else{var n=new Promise(((s,n)=>i=e[t]=[s,n]));s.push(i[2]=n);var a=o.p+o.u(t),r=new Error;o.l(a,(s=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=s&&("load"===s.type?"missing":s.type),a=s&&s.target&&s.target.src;r.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",r.name="ChunkLoadError",r.type=n,r.request=a,i[1](r)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,s)=>{var i,n,a=s[0],r=s[1],l=s[2],d=0;if(a.some((t=>0!==e[t]))){for(i in r)o.o(r,i)&&(o.m[i]=r[i]);if(l)var c=l(o)}for(t&&t(s);d<a.length;d++)n=a[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),o.nc=void 0;var r=o.O(void 0,[4208],(()=>o(3538)));r=o.O(r)})(); -//# sourceMappingURL=files-main.js.map?v=84b9cc79edeaffeda220
\ No newline at end of file +(()=>{"use strict";var e,s,i,n={77:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,'.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:"";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}',"",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA",sourcesContent:["\n// Grid mode\n.files-list--grid tbody.files-list__tbody {\n\t--item-padding: 16px;\n\t--icon-preview-size: 166px;\n\t--name-height: var(--default-clickable-area);\n\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\n\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\n\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\n\t--checkbox-padding: 0px;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, var(--row-width));\n\n\talign-content: center;\n\talign-items: center;\n\tjustify-content: space-around;\n\tjustify-items: center;\n\n\ttr {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--row-width);\n\t\theight: var(--row-height);\n\t\tborder: none;\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: var(--item-padding);\n\t}\n\n\t// Checkbox in the top left\n\t.files-list__row-checkbox {\n\t\tposition: absolute;\n\t\tz-index: 9;\n\t\ttop: calc(var(--item-padding) / 2);\n\t\tinset-inline-start: calc(var(--item-padding) / 2);\n\t\toverflow: hidden;\n\t\t--checkbox-container-size: 44px;\n\t\twidth: var(--checkbox-container-size);\n\t\theight: var(--checkbox-container-size);\n\n\t\t// Add a background to the checkbox so we do not see the image through it.\n\t\t.checkbox-radio-switch__content::after {\n\t\t\tcontent: '';\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tposition: absolute;\n\t\t\tinset-inline-start: 50%;\n\t\t\tmargin-inline-start: -8px;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\t}\n\n\t// Star icon in the top right\n\t.files-list__row-icon-favorite {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tinset-inline-end: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n\n\t.files-list__row-name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--icon-preview-size);\n\t\theight: calc(var(--icon-preview-size) + var(--name-height));\n\t\t// Ensure that the name outline is visible.\n\t\toverflow: visible;\n\n\t\tspan.files-list__row-icon {\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: var(--icon-preview-size);\n\t\t}\n\n\t\t.files-list__row-name-text {\n\t\t\tmargin: 0;\n\t\t\t// Ensure that the outline is not too close to the text.\n\t\t\tmargin-inline-start: -4px;\n\t\t\tpadding: 0px 4px;\n\t\t}\n\t}\n\n\t.files-list__row-mtime {\n\t\twidth: var(--icon-preview-size);\n\t\theight: var(--mtime-height);\n\t\tfont-size: var(--font-size-small);\n\t}\n\n\t.files-list__row-actions {\n\t\tposition: absolute;\n\t\tinset-inline-end: calc(var(--clickable-area) / 4);\n\t\tinset-block-end: calc(var(--mtime-height) / 2);\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n}\n\n@media screen and (max-width: 768px) {\n\t// there is no mtime\n\t.files-list--grid tbody.files-list__tbody {\n\t\t--mtime-height: 0px;\n\n\t\t// so we move the action to the name\n\t\t.files-list__row-actions {\n\t\t\tinset-block-end: var(--item-padding);\n\t\t}\n\n\t\t// and we need to keep space on the name for the actions\n\t\t.files-list__row-name-text {\n\t\t\tpadding-inline-end: var(--clickable-area) !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const r=o},3619:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__row-actions-batch[data-v-c463105a]{flex:1 1 100% !important;max-width:100%}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CACA,cAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\tmax-width: 100%;\n}\n"],sourceRoot:""}]);const r=o},4511:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__column[data-v-06480c18]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-06480c18]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},4613:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".favorite-marker-icon[data-v-0b2a4155]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue"],names:[],mappings:"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.favorite-marker-icon {\n\tcolor: var(--color-favorite);\n\t// Override NcIconSvgWrapper defaults (clickable area)\n\tmin-width: unset !important;\n min-height: unset !important;\n\n\t:deep() {\n\t\tsvg {\n\t\t\t// We added a stroke for a11y so we must increase the size to include the stroke\n\t\t\twidth: 26px !important;\n\t\t\theight: 26px !important;\n\n\t\t\t// Override NcIconSvgWrapper defaults of 20px\n\t\t\tmax-width: unset !important;\n\t\t\tmax-height: unset !important;\n\n\t\t\t// Sow a border around the icon for better contrast\n\t\t\tpath {\n\t\t\t\tstroke: var(--color-main-background);\n\t\t\t\tstroke-width: 8px;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t\tpaint-order: stroke;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const r=o},7421:(e,t,s)=>{s.d(t,{O:()=>m});var i=s(21777),n=s(61338),a=s(32981),o=s(63814),r=s(65899),l=s(85471),d=s(65043);const c=(0,a.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1,show_mime_column:!0,show_dialog_file_extension:!0}),m=(0,r.nY)("userconfig",(()=>{const e=(0,l.KR)({...c});return(0,n.B1)("files:config:updated",(t=>{let{key:s,value:i}=t;return function(t,s){(0,l.hZ)(e.value,t,s)}(s,i)})),{userConfig:e,update:async function(e,t){null!==(0,i.HW)()&&await d.Ay.put((0,o.Jv)("/apps/files/api/v1/config/{key}",{key:e}),{value:t}),(0,n.Ic)("files:config:updated",{key:e,value:t})}}}))},10673:(e,s,i)=>{var n=i(21777),a=i(65899),o=i(85471);const r=()=>(window._nc_files_pinia||(window._nc_files_pinia=(0,a.Ey)()),window._nc_files_pinia);var l=i(94205),d=i(43627),c=i(85168),m=i(35810),g=i(32981),u=i(53334),f=i(49264),p=i(5655),h=i(71225),v=i(77764);const w=new m.VP({id:"files_trashbin--original-location",title:(0,u.t)("files_trashbin","Original location"),render(e){const t=y(e),s=document.createElement("span");return s.title=t,s.textContent=t,s},sort(e,t){const s=y(e),i=y(t);return s.localeCompare(i,[(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"})}}),A=new m.VP({id:"files_trashbin--deleted-by",title:(0,u.t)("files_trashbin","Deleted by"),render(e){const{userId:t,displayName:s,label:i}=C(e);if(i){const e=document.createElement("span");return e.textContent=i,e}return new(o.Ay.extend(v.A))({propsData:{size:32,user:t??void 0,displayName:s??t}}).$mount().$el},sort(e,t){const s=C(e),i=s.label??s.displayName??s.userId,n=C(t),a=n.label??n.displayName??n.userId;return i.localeCompare(a,[(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"})}}),b=new m.VP({id:"files_trashbin--deleted",title:(0,u.t)("files_trashbin","Deleted"),render(e){const t=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3,s=document.createElement("span");if(t){const e=Intl.DateTimeFormat([(0,u.lO)()],{dateStyle:"long",timeStyle:"short"}),i=new Date(1e3*t);return s.title=e.format(i),s.textContent=(0,u.fw)(i,{ignoreSeconds:(0,u.t)("files","few seconds ago")}),s}return s.textContent=(0,u.t)("files_trashbin","A long time ago"),s},sort(e,t){const s=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3;return(t.attributes?.["trashbin-deletion-time"]||(t?.mtime?.getTime()??0)/1e3)-s}});function y(e){const t=k(e.attributes?.["trashbin-original-location"]);if(!t)return(0,u.t)("files_trashbin","Unknown");const s=(0,h.pD)(t);return s===t?(0,u.t)("files_trashbin","All files"):s.replace(/^\//,"")}function C(e){const t=k(e.attributes?.["trashbin-deleted-by-id"]),s=k(e.attributes?.["trashbin-deleted-by-display-name"]);let i;const a=(0,n.HW)()?.uid;return t===a&&(i=(0,u.t)("files_trashbin","You")),t||s||(i=(0,u.t)("files_trashbin","Unknown")),{userId:t,displayName:s,label:i}}function k(e){return e?String(e):null}const _=`/trashbin/${(0,n.HW)()?.uid}/trash`,x=(0,m.H4)();var T=i(63814);const S=`<?xml version="1.0"?>\n<d:propfind ${(0,m.CP)()}>\n\t<d:prop>\n\t\t<nc:trashbin-deletion-time />\n\t\t<nc:trashbin-original-location />\n\t\t<nc:trashbin-title />\n\t\t<nc:trashbin-deleted-by-id />\n\t\t<nc:trashbin-deleted-by-display-name />\n\t\t${(0,m.VX)()}\n\t</d:prop>\n</d:propfind>`,L=e=>{const t=(0,m.Al)(e,_);return t.attributes.previewUrl=(0,T.Jv)("/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32",{fileid:t.fileid}),t};var N=i(45174);const F="trashbin";new m.Ss({id:F,name:(0,u.t)("files_trashbin","Deleted files"),caption:(0,u.t)("files_trashbin","List of files that have been deleted."),emptyTitle:(0,u.t)("files_trashbin","No deleted files"),emptyCaption:(0,u.t)("files_trashbin","Files and folders you have deleted will show up here"),icon:N,order:50,sticky:!0,defaultSortKey:"deleted",columns:[w,A,b],getContents:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=(await x.getDirectoryContents(`${_}${e}`,{details:!0,data:S,includeSelf:!0})).data.map(L),[s]=t.splice(t.findIndex((t=>t.path===e)),1);return{folder:s,contents:t}}});var U=i(61338),E=i(87485),I=i(65043);const P=()=>!0===(0,E.F)()?.files?.undelete,z=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),B=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),D=(e,t)=>z(e)?1===e.length?(0,u.t)("files","Leave this share"):(0,u.t)("files","Leave these shares"):B(e)?1===e.length?(0,u.t)("files","Disconnect storage"):(0,u.t)("files","Disconnect storages"):"trashbin"!==t.id&&P()?(e=>{if(1===e.length)return!1;const t=e.some((e=>z([e]))),s=e.some((e=>!z([e])));return t&&s})(e)?(0,u.t)("files","Delete and unshare"):(e=>!e.some((e=>e.type!==m.pt.File)))(e)?1===e.length?(0,u.t)("files","Delete file"):(0,u.t)("files","Delete files"):(e=>!e.some((e=>e.type!==m.pt.Folder)))(e)?1===e.length?(0,u.t)("files","Delete folder"):(0,u.t)("files","Delete folders"):(0,u.t)("files","Delete"):(0,u.t)("files","Delete permanently"),R=async(e,t)=>{const s="trashbin"!==t.id&&P()?(0,u.n)("files","You are about to delete {count} item","You are about to delete {count} items",e.length,{count:e.length}):(0,u.n)("files","You are about to permanently delete {count} item","You are about to permanently delete {count} items",e.length,{count:e.length});return new Promise((i=>{window.OC.dialogs.confirmDestructive(s,(0,u.t)("files","Confirm deletion"),{type:window.OC.dialogs.YES_NO_BUTTONS,confirm:D(e,t),confirmClasses:"error",cancel:(0,u.t)("files","Cancel")},(e=>{i(e)}))}))},O=async e=>{await I.Ay.delete(e.encodedSource),(0,U.Ic)("files:node:deleted",e)},j=(0,i(35947).YK)().setApp("files").detectUser().build(),M=new f.A({concurrency:5}),V=new m.hY({id:"delete",displayName:D,iconSvgInline:e=>z(e)?p:B(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:(e,t)=>(t.id!==F||!1!==(0,g.C)("files_trashbin","config",{allow_delete:!0}).allow_delete)&&(e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&m.aX.DELETE)))),async exec(e,t){try{let s=!0;const i=((new Error).stack||"").toLocaleLowerCase().includes("keydown");return P()&&!i||(s=await R([e],t)),!1===s?((0,c.cf)((0,u.Tl)("files","Deletion cancelled")),null):(await O(e),!0)}catch(t){return j.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t){let s=!0;if(P()?e.length>=5&&!z(e)&&!B(e)&&(s=await R(e,t)):s=await R(e,t),!1===s)return(0,c.cf)((0,u.Tl)("files","Deletion cancelled")),Promise.all(e.map((()=>null)));const i=e.map((e=>new Promise((t=>{M.add((async()=>{try{await O(e),t(!0)}catch(s){j.error("Error while deleting a file",{error:s,source:e.source,node:e}),t(!1)}}))}))));return Promise.all(i)},order:100});var $=i(82680),W=i(63006),H=i(11459);const q=new f.A({concurrency:5}),Y=e=>e.some((e=>1!==e.attributes.favorite)),G=async(e,t,s)=>{try{const i=(0,T.Jv)("/apps/files/api/v1/files")+(0,h.O0)(e.path);return await I.Ay.post(i,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,U.Ic)("files:node:deleted",e),o.Ay.set(e.attributes,"favorite",s?1:0),s?(0,U.Ic)("files:favorites:added",e):(0,U.Ic)("files:favorites:removed",e),!0}catch(t){const i=s?"adding a file to favourites":"removing a file from favourites";return j.error("Error while "+i,{error:t,source:e.source,node:e}),!1}},K=new m.hY({id:"favorite",displayName:e=>Y(e)?(0,u.Tl)("files","Add to favorites"):(0,u.Tl)("files","Remove from favorites"),iconSvgInline:e=>Y(e)?W:H,enabled:e=>!(0,$.f)()&&e.every((e=>e.root?.startsWith?.("/files")))&&e.every((e=>e.permissions!==m.aX.NONE)),async exec(e,t){const s=Y([e]);return await G(e,t,s)},async execBatch(e,t){const s=Y(e),i=e.map((e=>new Promise((i=>{q.add((async()=>{try{await G(e,t,s),i(!0)}catch(t){j.error("Error while adding file to favorite",{error:t,source:e.source,node:e}),i(!1)}}))}))));return Promise.all(i)},order:-50});var Q=i(19664);const J=new m.hY({id:"rename",displayName:()=>(0,u.Tl)("files","Rename"),iconSvgInline:()=>Q,enabled:(e,t)=>0!==e.length&&"public-file-share"!==t.id&&e.every((e=>Boolean(e.permissions&m.aX.DELETE))),exec:async e=>((0,U.Ic)("files:node:rename",e),null),order:10});var X=i(49981);const Z=new m.hY({id:"details",displayName:()=>(0,u.Tl)("files","Open details"),iconSvgInline:()=>X,enabled:e=>!(0,$.f)()&&1===e.length&&!!e[0]&&!!window?.OCA?.Files?.Sidebar&&((e[0].root?.startsWith("/files/")&&e[0].permissions!==m.aX.NONE)??!1),async exec(e,t,s){try{return window.OCA.Files.Sidebar.file===e.path?(j.debug("Sidebar already open for this file",{node:e}),null):(window.OCA.Files.Sidebar.setActiveTab("sharing"),await window.OCA.Files.Sidebar.open(e.path),window.OCP?.Files?.Router?.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{...window.OCP.Files.Router.query,dir:s,opendetails:"true"},!0),null)}catch(e){return j.error("Error while opening sidebar",{error:e}),!1}},order:-50}),ee=function(){const e=(0,a.nY)("active",{state:()=>({_initialized:!1,activeNode:null,activeView:null,activeAction:null}),actions:{setActiveNode(e){if(!e)throw new Error("Use clearActiveNode to clear the active node");j.debug("Setting active node",{node:e}),this.activeNode=e},clearActiveNode(){this.activeNode=null},onDeletedNode(e){this.activeNode&&this.activeNode.source===e.source&&this.clearActiveNode()},setActiveAction(e){this.activeAction=e},clearActiveAction(){this.activeAction=null},onChangedView(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;j.debug("Setting active view",{view:e}),this.activeView=e,this.clearActiveNode()}}}),t=e(...arguments),s=(0,m.bh)();return t._initialized||((0,U.B1)("files:node:deleted",t.onDeletedNode),t._initialized=!0,t.onChangedView(s.active),s.addEventListener("updateActive",(e=>{t.onChangedView(e.detail)}))),t},te=async e=>{const t=ee(r()),s=window?.OCP?.Files?.Router?.query?.dir||"/",i=t.activeNode,n=t.activeView;if(!i||!n)return void j.error("No active node or view",{node:i,view:n});if(i.status===m.zI.LOADING)return void j.debug("Node is already loading",{node:i});if(!e.enabled([i],n))return void j.debug("Action is not not available for the current context",{action:e,node:i,view:n});let a=e.id;try{a=e.displayName([i],n)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}try{o.Ay.set(i,"status",m.zI.LOADING),t.setActiveAction(e);const r=await e.exec(i,n,s);if(null==r)return;if(r)return void(0,c.Te)((0,u.t)("files",'"{displayName}" action executed successfully',{displayName:a}));(0,c.Qg)((0,u.t)("files",'"{displayName}" action failed',{displayName:a}))}catch(t){j.error("Error while executing action",{action:e,error:t}),(0,c.Qg)((0,u.t)("files",'"{displayName}" action failed',{displayName:a}))}finally{o.Ay.set(i,"status",void 0),t.clearActiveAction()}};var se=i(7421);var ie=i(22378);const ne={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var ae=i(14486);const oe=(0,ae.A)(ne,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var re=i(42530),le=i(52439),de=i(27345),ce=i(60126);function me(e,t,s){var i,n=s||{},a=n.noTrailing,o=void 0!==a&&a,r=n.noLeading,l=void 0!==r&&r,d=n.debounceMode,c=void 0===d?void 0:d,m=!1,g=0;function u(){i&&clearTimeout(i)}function f(){for(var s=arguments.length,n=new Array(s),a=0;a<s;a++)n[a]=arguments[a];var r=this,d=Date.now()-g;function f(){g=Date.now(),t.apply(r,n)}function p(){i=void 0}m||(l||!c||i||f(),u(),void 0===c&&d>e?l?(g=Date.now(),o||(i=setTimeout(c?p:f,e))):f():!0!==o&&(i=setTimeout(c?p:f,void 0===c?e-d:e)))}return f.cancel=function(e){var t=(e||{}).upcomingOnly,s=void 0!==t&&t;u(),m=!s},f}const ge={name:"ChartPieIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,ae.A)(ge,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chart-pie-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var fe=i(95101);const pe={name:"NavigationQuota",components:{ChartPie:ue,NcAppNavigationItem:le.A,NcProgressBar:fe.A},data:()=>({loadingStorageStats:!1,storageStats:(0,g.C)("files","storageStats",null)}),computed:{storageStatsTitle(){const e=(0,m.v7)(this.storageStats?.used,!1,!1),t=(0,m.v7)(this.storageStats?.quota,!1,!1);return this.storageStats?.quota<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:e}):this.t("files","{used} of {quota} used",{used:e,quota:t})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,U.B1)("files:node:created",this.throttleUpdateStorageStats),(0,U.B1)("files:node:deleted",this.throttleUpdateStorageStats),(0,U.B1)("files:node:moved",this.throttleUpdateStorageStats),(0,U.B1)("files:node:updated",this.throttleUpdateStorageStats)},mounted(){this.storageStats?.quota>0&&0===this.storageStats?.free&&this.showStorageFullWarning()},methods:{debounceUpdateStorageStats:(he={}.atBegin,me(200,(function(e){this.updateStorageStats(e)}),{debounceMode:!1!==(void 0!==he&&he)})),throttleUpdateStorageStats:me(1e3,(function(e){this.updateStorageStats(e)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{const e=await I.Ay.get((0,T.Jv)("/apps/files/api/v1/stats"));if(!e?.data?.data)throw new Error("Invalid storage stats");this.storageStats?.free>0&&0===e.data.data?.free&&e.data.data?.quota>0&&this.showStorageFullWarning(),this.storageStats=e.data.data}catch(s){j.error("Could not refresh storage stats",{error:s}),e&&(0,c.Qg)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},showStorageFullWarning(){(0,c.Qg)(this.t("files","Your storage is full, files can not be updated or synced anymore!"))},t:u.Tl}};var he,ve=i(85072),we=i.n(ve),Ae=i(97825),be=i.n(Ae),ye=i(77659),Ce=i.n(ye),ke=i(55056),_e=i.n(ke),xe=i(10540),Te=i.n(xe),Se=i(41113),Le=i.n(Se),Ne=i(75688),Fe={};Fe.styleTagTransform=Le(),Fe.setAttributes=_e(),Fe.insert=Ce().bind(null,"head"),Fe.domAPI=be(),Fe.insertStyleElement=Te(),we()(Ne.A,Fe),Ne.A&&Ne.A.locals&&Ne.A.locals;const Ue=(0,ae.A)(pe,(function(){var e=this,t=e._self._c;return e.storageStats?t("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":e.storageStats.quota>=0},attrs:{"aria-description":e.t("files","Storage information"),loading:e.loadingStorageStats,name:e.storageStatsTitle,title:e.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.debounceUpdateStorageStats.apply(null,arguments)}}},[t("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),e._v(" "),e.storageStats.quota>=0?t("NcProgressBar",{attrs:{slot:"extra","aria-label":e.t("files","Storage quota"),error:e.storageStats.relative>80,value:Math.min(e.storageStats.relative,100)},slot:"extra"}):e._e()],1):e._e()}),[],!1,null,"d3cdbf54",null).exports;var Ee=i(31773),Ie=i(29270),Pe=i(14727),ze=i(32073),Be=i(16879);const De={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},Re=(0,ae.A)(De,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,Oe={name:"Settings",components:{Clipboard:Ee.A,NcAppSettingsDialog:Ie.N,NcAppSettingsSection:Pe.A,NcCheckboxRadioSwitch:ze.A,NcInputField:Be.A,Setting:Re},props:{open:{type:Boolean,default:!1}},setup(){const e=(0,se.O)();return{isSystemtagsEnabled:!0===(0,E.F)()?.systemtags?.enabled,userConfigStore:e,t:u.t}},data:()=>({settings:window.OCA?.Files?.Settings?.settings||[],webdavUrl:(0,T.dC)("dav/files/"+encodeURIComponent((0,n.HW)()?.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,T.Jv)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1,enableGridView:(0,g.C)("core","config",[])["enable_non-accessible_features"]??!0}),computed:{userConfig(){return this.userConfigStore.userConfig}},created(){(0,l.C)("?",this.showKeyboardShortcuts,{stop:!0,prevent:!0})},beforeMount(){this.settings.forEach((e=>e.open()))},beforeDestroy(){this.settings.forEach((e=>e.close()))},methods:{onClose(){this.$emit("close")},setConfig(e,t){this.userConfigStore.update(e,t)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,c.Te)((0,u.t)("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,c.Qg)((0,u.t)("files","Clipboard is not available"))},async showKeyboardShortcuts(){this.$emit("update:open",!0),await this.$nextTick(),document.getElementById("settings-section_shortcuts").scrollIntoView({behavior:"smooth",inline:"nearest"})}}};var je=i(72383),Me={};Me.styleTagTransform=Le(),Me.setAttributes=_e(),Me.insert=Ce().bind(null,"head"),Me.domAPI=be(),Me.insertStyleElement=Te(),we()(je.A,Me),je.A&&je.A.locals&&je.A.locals;const Ve=(0,ae.A)(Oe,(function(){var e=this,t=e._self._c;return t("NcAppSettingsDialog",{attrs:{open:e.open,"show-navigation":!0,name:e.t("files","Files settings")},on:{"update:open":e.onClose}},[t("NcAppSettingsSection",{attrs:{id:"settings",name:e.t("files","Files settings")}},[t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_favorites_first",checked:e.userConfig.sort_favorites_first},on:{"update:checked":function(t){return e.setConfig("sort_favorites_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort favorites first"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_folders_first",checked:e.userConfig.sort_folders_first},on:{"update:checked":function(t){return e.setConfig("sort_folders_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort folders before files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_hidden",checked:e.userConfig.show_hidden},on:{"update:checked":function(t){return e.setConfig("show_hidden",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show hidden files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_mime_column",checked:e.userConfig.show_mime_column},on:{"update:checked":function(t){return e.setConfig("show_mime_column",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show file type column"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"crop_image_previews",checked:e.userConfig.crop_image_previews},on:{"update:checked":function(t){return e.setConfig("crop_image_previews",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Crop image previews"))+"\n\t\t")]),e._v(" "),e.enableGridView?t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"grid_view",checked:e.userConfig.grid_view},on:{"update:checked":function(t){return e.setConfig("grid_view",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable the grid view"))+"\n\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"folder_tree",checked:e.userConfig.folder_tree},on:{"update:checked":function(t){return e.setConfig("folder_tree",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable folder tree"))+"\n\t\t")])],1),e._v(" "),0!==e.settings.length?t("NcAppSettingsSection",{attrs:{id:"more-settings",name:e.t("files","Additional settings")}},[e._l(e.settings,(function(e){return[t("Setting",{key:e.name,attrs:{el:e.el}})]}))],2):e._e(),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"webdav",name:e.t("files","WebDAV")}},[t("NcInputField",{attrs:{id:"webdav-url-input",label:e.t("files","WebDAV URL"),"show-trailing-button":!0,success:e.webdavUrlCopied,"trailing-button-label":e.t("files","Copy to clipboard"),value:e.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(e){return e.target.select()},"trailing-button-click":e.copyCloudId},scopedSlots:e._u([{key:"trailing-button-icon",fn:function(){return[t("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[e._v("\n\t\t\t\t"+e._s(e.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),e._v(" "),t("br"),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.appPasswordUrl}},[e._v("\n\t\t\t\t"+e._s(e.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"warning",name:e.t("files","Warnings")}},[t("em",[e._v(e._s(e.t("files","Prevent warning dialogs from open or reenable them.")))]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.userConfig.show_dialog_file_extension},on:{"update:checked":function(t){return e.setConfig("show_dialog_file_extension",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show a warning dialog when changing a file extension."))+"\n\t\t")])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"shortcuts",name:e.t("files","Keyboard shortcuts")}},[t("em",[e._v(e._s(e.t("files","Speed up your Files experience with these quick shortcuts.")))]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Actions")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("a")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the actions menu for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("F2")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Rename a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Del")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Delete a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("s")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Favorite or remove a file from favorites"))+"\n\t\t\t\t")])]),e._v(" "),e.isSystemtagsEnabled?t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("t")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Manage tags for a file"))+"\n\t\t\t\t")])]):e._e()]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Selection")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("A")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("ESC")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Deselect all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Space")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select or deselect a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Shift")]),e._v(" "),t("span",[e._v("+ "),t("kbd",[e._v("Space")])])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select a range of files"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Navigation")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Alt")]),e._v(" + "),t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the parent folder"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file above"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↓")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file below"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("←")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the left (in grid mode)"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("→")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the right (in grid mode)"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","View")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("V")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Toggle the grid view"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("D")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the sidebar for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("?")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Show those shortcuts"))+"\n\t\t\t\t")])])])])],1)}),[],!1,null,"9a0994e0",null).exports;var $e=i(54914),We=i(6695);function He(e){const t=(0,m.bh)(),s=(0,o.IJ)(t.views),i=(0,o.IJ)(t.active);function n(e){i.value=e.detail}function a(){s.value=t.views,(0,o.mu)(s)}return(0,o.sV)((()=>{t.addEventListener("update",a),t.addEventListener("updateActive",n),(0,U.B1)("files:navigation:updated",a)})),(0,o.hi)((()=>{t.removeEventListener("update",a),t.removeEventListener("updateActive",n)})),{currentView:i,views:s}}const qe=(0,g.C)("files","viewConfigs",{}),Ye=(0,a.nY)("viewconfig",(()=>{const e=(0,o.KR)({...qe});async function t(e,t,s){null!==(0,n.HW)()&&await I.Ay.put((0,T.Jv)("/apps/files/api/v1/views"),{value:s,view:e,key:t}),(0,U.Ic)("files:view-config:updated",{view:e,key:t,value:s})}return(0,U.B1)("files:view-config:updated",(t=>{let{view:s,key:i,value:n}=t;return function(t,s,i){t in e.value||(0,o.hZ)(e.value,t,{}),(0,o.hZ)(e.value[t],s,i)}(s,i,n)})),{viewConfigs:e,getConfig:function(t){return e.value[t]||{}},setSortingBy:function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";t(e,"sorting_mode",arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename"),t(e,"sorting_direction","asc")},toggleSortingDirection:function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";t(s,"sorting_direction","asc"===(e.value[s]||{sorting_direction:"asc"}).sorting_direction?"desc":"asc")},update:t}})),Ge=(0,o.pM)({name:"FilesNavigationItem",components:{Fragment:$e.F,NcAppNavigationItem:le.A,NcIconSvgWrapper:We.A},props:{parent:{type:Object,default:()=>({})},level:{type:Number,default:0},views:{type:Object,default:()=>({})}},setup(){const{currentView:e}=He();return{currentView:e,viewConfigStore:Ye()}},computed:{currentViews(){return this.level>=7?Object.values(this.views).reduce(((e,t)=>[...e,...t]),[]).filter((e=>e.params?.dir.startsWith(this.parent.params?.dir))):this.views[this.parent.id]??[]},style(){return 0===this.level||1===this.level||this.level>7?null:{"padding-left":"16px"}}},methods:{hasChildViews(e){return!(this.level>=7)&&this.views[e.id]?.length>0},useExactRouteMatching(e){return this.hasChildViews(e)},generateToNavigation(e){if(e.params){const{dir:t}=e.params;return{name:"filelist",params:{...e.params},query:{dir:t}}}return{name:"filelist",params:{view:e.id}}},isExpanded(e){return"boolean"==typeof this.viewConfigStore.getConfig(e.id)?.expanded?!0===this.viewConfigStore.getConfig(e.id).expanded:!0===e.expanded},async onOpen(e,t){const s=this.isExpanded(t);t.expanded=!s,this.viewConfigStore.update(t.id,"expanded",!s),e&&t.loadChildViews&&await t.loadChildViews(t)},filterView:(e,t)=>Object.fromEntries(Object.entries(e).filter((e=>{let[s,i]=e;return s!==t})))}}),Ke=(0,ae.A)(Ge,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",e._l(e.currentViews,(function(s){return t("NcAppNavigationItem",{key:s.id,staticClass:"files-navigation__item",style:e.style,attrs:{"allow-collapse":"",loading:s.loading,"data-cy-files-navigation-item":s.id,exact:e.useExactRouteMatching(s),icon:s.iconClass,name:s.name,open:e.isExpanded(s),pinned:s.sticky,to:e.generateToNavigation(s)},on:{"update:open":t=>e.onOpen(t,s)},scopedSlots:e._u([s.icon?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.icon}})]},proxy:!0}:null],null,!0)},[e._v(" "),s.loadChildViews&&!s.loaded?t("li",{staticStyle:{display:"none"}}):e._e(),e._v(" "),e.hasChildViews(s)?t("FilesNavigationItem",{attrs:{parent:s,level:e.level+1,views:e.filterView(e.views,e.parent.id)}}):e._e()],1)})),1)}),[],!1,null,null,null).exports;var Qe=i(59271);class Je extends m.L3{constructor(){super("files:filename",5),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"searchQuery","")}filter(e){const t=this.searchQuery.toLocaleLowerCase().split(" ").filter(Boolean);return e.filter((e=>{const s=e.displayname.toLocaleLowerCase();return t.every((e=>s.includes(e)))}))}reset(){this.updateQuery("")}updateQuery(e){if((e=(e||"").trim())!==this.searchQuery){this.searchQuery=e,this.filterUpdated();const t=[];""!==e&&t.push({text:e,onclick:()=>{this.updateQuery("")}}),this.updateChips(t),this.dispatchTypedEvent("update:query",new CustomEvent("update:query",{detail:e}))}}}function Xe(e){return"mount"in e}const Ze=(0,a.nY)("filters",(()=>{const e=(0,o.KR)({}),t=(0,o.KR)([]),s=(0,o.EW)((()=>Object.values(e.value).flat())),i=(0,o.EW)((()=>t.value.sort(((e,t)=>e.order-t.order)))),n=(0,o.EW)((()=>i.value.filter(Xe)));function a(e){e.addEventListener("update:chips",d),e.addEventListener("update:filter",l),t.value.push(e),j.debug("New file list filter registered",{id:e.id})}function r(e){const s=t.value.findIndex((t=>{let{id:s}=t;return s===e}));if(s>-1){const[i]=t.value.splice(s,1);i.removeEventListener("update:chips",d),i.removeEventListener("update:filter",l),j.debug("Files list filter unregistered",{id:e})}}function l(){(0,U.Ic)("files:filters:changed")}function d(t){const s=t.target.id;e.value={...e.value,[s]:[...t.detail]},j.debug("File list filter chips updated",{filter:s,chips:t.detail})}(0,U.B1)("files:navigation:changed",(function(){j.debug("Reset all file list filters - view changed");for(const e of t.value)void 0!==e.reset&&e.reset()})),(0,U.B1)("files:filter:added",a),(0,U.B1)("files:filter:removed",r);for(const e of(0,m.sR)())a(e);return{chips:e,filters:t,filtersWithUI:n,activeChips:s,sortedFilters:i,addFilter:a,removeFilter:r}})),et=Intl.Collator([(0,u.Z0)(),(0,u.lO)()],{numeric:!0,usage:"sort"}),tt=(0,o.pM)({name:"Navigation",components:{IconCog:oe,FilesNavigationItem:Ke,NavigationQuota:Ue,NcAppNavigation:re.A,NcAppNavigationItem:le.A,NcAppNavigationList:de.A,NcAppNavigationSearch:ce.N,SettingsModal:Ve},setup(){const e=Ze(),t=Ye(),{currentView:s,views:i}=He(),{searchQuery:n}=function(){const e=(0,o.KR)(""),t=new Je;function s(t){"update:query"===t.type&&(e.value=t.detail,t.stopPropagation())}return(0,o.sV)((()=>{t.addEventListener("update:query",s),(0,m.cZ)(t)})),(0,o.hi)((()=>{t.removeEventListener("update:query",s),(0,m.Dw)(t.id)})),(0,Qe.o3)(e,(()=>{t.updateQuery(e.value)}),{throttle:800}),{searchQuery:e}}();return{currentView:s,searchQuery:n,t:u.Tl,views:i,filtersStore:e,viewConfigStore:t}},data:()=>({settingsOpened:!1}),computed:{currentViewId(){return this.$route?.params?.view||"files"},viewMap(){return this.views.reduce(((e,t)=>(e[t.parent]=[...e[t.parent]||[],t],e[t.parent].sort(((e,t)=>"number"==typeof e.order||"number"==typeof t.order?(e.order??0)-(t.order??0):et.compare(e.name,t.name))),e)),{})}},watch:{currentViewId(e,t){if(this.currentViewId!==this.currentView?.id){const s=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(s),j.debug(`Navigation changed from ${t} to ${e}`,{to:s})}}},created(){(0,U.B1)("files:folder-tree:initialized",this.loadExpandedViews),(0,U.B1)("files:folder-tree:expanded",this.loadExpandedViews)},beforeMount(){const e=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(e),j.debug("Navigation mounted. Showing requested view",{view:e})},methods:{async loadExpandedViews(){const e=Object.entries(this.viewConfigStore.viewConfigs).filter((e=>{let[,t]=e;return!0===t.expanded})).map((e=>{let[t]=e;return this.views.find((e=>e.id===t))})).filter(Boolean).filter((e=>e.loadChildViews&&!e.loaded));for(const t of e)await t.loadChildViews(t)},showView(e){window.OCA?.Files?.Sidebar?.close?.(),(0,m.bh)().setActive(e),(0,U.Ic)("files:navigation:changed",e)},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1}}});var st=i(80355),it={};it.styleTagTransform=Le(),it.setAttributes=_e(),it.insert=Ce().bind(null,"head"),it.domAPI=be(),it.insertStyleElement=Te(),we()(st.A,it),st.A&&st.A.locals&&st.A.locals;const nt=(0,ae.A)(tt,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppNavigation",{staticClass:"files-navigation",attrs:{"data-cy-files-navigation":"","aria-label":e.t("files","Files")},scopedSlots:e._u([{key:"search",fn:function(){return[t("NcAppNavigationSearch",{attrs:{label:e.t("files","Filter file names …")},model:{value:e.searchQuery,callback:function(t){e.searchQuery=t},expression:"searchQuery"}})]},proxy:!0},{key:"default",fn:function(){return[t("NcAppNavigationList",{staticClass:"files-navigation__list",attrs:{"aria-label":e.t("files","Views")}},[t("FilesNavigationItem",{attrs:{views:e.viewMap}})],1),e._v(" "),t("SettingsModal",{attrs:{open:e.settingsOpened,"data-cy-files-navigation-settings":""},on:{"update:open":function(t){e.settingsOpened=t},close:e.onSettingsClose}})]},proxy:!0},{key:"footer",fn:function(){return[t("ul",{staticClass:"app-navigation-entry__settings"},[t("NavigationQuota"),e._v(" "),t("NcAppNavigationItem",{attrs:{name:e.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.openSettings.apply(null,arguments)}}},[t("IconCog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])})}),[],!1,null,"084c464a",null).exports;var at=i(77905),ot=i(85748),rt=i(18195),lt=i(24764),dt=i(57505),ct=i(97012),mt=i(32190),gt=i(59892);const ut={name:"AccountPlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ft=(0,ae.A)(ut,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var pt=i(57578);const ht={name:"ReloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vt=(0,ae.A)(ht,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon reload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var wt=i(36600);const At={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bt=(0,ae.A)(At,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon format-list-bulleted-square-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,yt={name:"ViewGridIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ct=(0,ae.A)(yt,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon view-grid-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;function kt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const s=e.filter((e=>e.type===m.pt.File)).length,i=e.filter((e=>e.type===m.pt.Folder)).length,n=[];if(s>0||0===i){const e=(0,u.n)("files","%n file","%n files",s);n.push(e)}if(i>0){const e=(0,u.n)("files","%n folder","%n folders",i);n.push(e)}if(t>0){const e=(0,u.n)("files","%n hidden","%n hidden",t);n.push(e)}return n.join(" · ")}function _t(){const e=(0,o.KR)((0,m.By)());return(0,o.EW)((()=>[...e.value].sort(((e,t)=>e.order-t.order))))}let xt;const Tt=(0,o.KR)(0),St=new ResizeObserver((e=>{e[0].contentBoxSize?Tt.value=e[0].contentBoxSize[0].inlineSize:Tt.value=e[0].contentRect.width}));function Lt(){const e=document.querySelector("#app-content-vue")??document.body;e!==xt&&(xt&&St.unobserve(xt),St.observe(e),xt=e)}function Nt(){return(0,o.sV)(Lt),Lt(),(0,o.tB)(Tt)}var Ft=i(77815);const Ut=(0,Ft.KU)(),Et=async e=>{const t=(0,Ft.aN)(),s=await Ut.stat(`${(0,Ft.ei)()}${e}`,{details:!0,data:t});return(0,Ft.pO)(s.data)},It=function(){const e=Pt(...arguments),t=(0,a.nY)("paths",{state:()=>({paths:{}}),getters:{getPath:e=>(t,s)=>{if(e.paths[t])return e.paths[t][s]}},actions:{addPath(e){this.paths[e.service]||o.Ay.set(this.paths,e.service,{}),o.Ay.set(this.paths[e.service],e.path,e.source)},deletePath(e,t){this.paths[e]&&o.Ay.delete(this.paths[e],t)},onCreatedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.fileid?(e.type===m.pt.Folder&&this.addPath({service:t,path:e.path,source:e.source}),this.addNodeToParentChildren(e)):j.error("Node has no fileid",{node:e})},onDeletedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.type===m.pt.Folder&&this.deletePath(t,e.path),this.deleteNodeFromParentChildren(e)},onMovedNode(e){let{node:t,oldSource:s}=e;const i=(0,m.bh)()?.active?.id||"files";if(t.type===m.pt.Folder){const e=Object.entries(this.paths[i]).find((e=>{let[,t]=e;return t===s}));e?.[0]&&this.deletePath(i,e[0]),this.addPath({service:i,path:t.path,source:t.source})}const n=new m.ZH({source:s,owner:t.owner,mime:t.mime});this.deleteNodeFromParentChildren(n),this.addNodeToParentChildren(t)},deleteNodeFromParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",i=(0,h.pD)(t.source),n="/"===t.dirname?e.getRoot(s):e.getNode(i);if(n){const e=new Set(n._children??[]);return e.delete(t.source),o.Ay.set(n,"_children",[...e.values()]),void j.debug("Children updated",{parent:n,node:t,children:n._children})}j.debug("Parent path does not exists, skipping children update",{node:t})},addNodeToParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",i=(0,h.pD)(t.source),n="/"===t.dirname?e.getRoot(s):e.getNode(i);if(n){const e=new Set(n._children??[]);return e.add(t.source),o.Ay.set(n,"_children",[...e.values()]),void j.debug("Children updated",{parent:n,node:t,children:n._children})}j.debug("Parent path does not exists, skipping children update",{node:t})}}})(...arguments);return t._initialized||((0,U.B1)("files:node:created",t.onCreatedNode),(0,U.B1)("files:node:deleted",t.onDeletedNode),(0,U.B1)("files:node:moved",t.onMovedNode),t._initialized=!0),t},Pt=function(){const e=(0,a.nY)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:e=>t=>e.files[t],getNodes:e=>t=>t.map((t=>e.files[t])).filter(Boolean),getNodesById:e=>t=>Object.values(e.files).filter((e=>e.fileid===t)),getRoot:e=>t=>e.roots[t]},actions:{getNodesByPath(e,t){const s=It();let i;if(t&&"/"!==t){const n=s.getPath(e,t);n&&(i=this.getNode(n))}else i=this.getRoot(e);return(i?._children??[]).map((e=>this.getNode(e))).filter(Boolean)},updateNodes(e){const t=e.reduce(((e,t)=>t.fileid?(e[t.source]=t,e):(j.error("Trying to update/set a node without fileid",{node:t}),e)),{});o.Ay.set(this,"files",{...this.files,...t})},deleteNodes(e){e.forEach((e=>{e.source&&o.Ay.delete(this.files,e.source)}))},setRoot(e){let{service:t,root:s}=e;o.Ay.set(this.roots,t,s)},onDeletedNode(e){this.deleteNodes([e])},onCreatedNode(e){this.updateNodes([e])},onMovedNode(e){let{node:t,oldSource:s}=e;t.fileid?(o.Ay.delete(this.files,s),this.updateNodes([t])):j.error("Trying to update/set a node without fileid",{node:t})},async onUpdatedNode(e){if(!e.fileid)return void j.error("Trying to update/set a node without fileid",{node:e});const t=this.getNodesById(e.fileid);if(t.length>1)return await Promise.all(t.map((e=>Et(e.path)))).then(this.updateNodes),void j.debug(t.length+" nodes updated in store",{fileid:e.fileid});e.source!==t[0].source?Et(e.path).then((e=>this.updateNodes([e]))):this.updateNodes([e])},onAddFavorite(e){const t=this.getNode(e.source);t&&o.Ay.set(t.attributes,"favorite",1)},onRemoveFavorite(e){const t=this.getNode(e.source);t&&o.Ay.set(t.attributes,"favorite",0)}}})(...arguments);return e._initialized||((0,U.B1)("files:node:created",e.onCreatedNode),(0,U.B1)("files:node:deleted",e.onDeletedNode),(0,U.B1)("files:node:updated",e.onUpdatedNode),(0,U.B1)("files:node:moved",e.onMovedNode),(0,U.B1)("files:favorites:added",e.onAddFavorite),(0,U.B1)("files:favorites:removed",e.onRemoveFavorite),e._initialized=!0),e};function zt(){const e=function(){var e=(0,o.nI)().proxy.$root;if(!e._$route){var t=(0,o.uY)(!0).run((function(){return(0,o.Gc)(Object.assign({},e.$router.currentRoute))}));e._$route=t,e.$router.afterEach((function(e){Object.assign(t,e)}))}return e._$route}();return{directory:(0,o.EW)((()=>String(e.query.dir||"/").replace(/^(.+)\/$/,"$1"))),fileId:(0,o.EW)((()=>{const t=Number.parseInt(e.params.fileid??"0")||null;return Number.isNaN(t)?null:t})),openFile:(0,o.EW)((()=>"openfile"in e.query&&("string"!=typeof e.query.openfile||"false"!==e.query.openfile.toLocaleLowerCase()))),openDetails:(0,o.EW)((()=>"opendetails"in e.query&&("string"!=typeof e.query.opendetails||"false"!==e.query.opendetails.toLocaleLowerCase())))}}const Bt=(0,a.nY)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o.Ay.set(this,"selected",[...new Set(e)])},setLastIndex(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;o.Ay.set(this,"lastSelection",e?this.selected:[]),o.Ay.set(this,"lastSelectedIndex",e)},reset(){o.Ay.set(this,"selected",[]),o.Ay.set(this,"lastSelection",[]),o.Ay.set(this,"lastSelectedIndex",null)}}});let Dt;const Rt=function(){return Dt=(0,ot.g)(),(0,a.nY)("uploader",{state:()=>({queue:Dt.queue})})(...arguments)};var Ot=i(11820),jt=i(40603);class Mt extends File{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];super([],e,{type:"httpd/unix-directory"}),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"_contents",void 0),this._contents=t}set contents(e){this._contents=e}get contents(){return this._contents}get size(){return this._computeDirectorySize(this)}get lastModified(){return 0===this._contents.length?Date.now():this._computeDirectoryMtime(this)}_computeDirectoryMtime(e){return e.contents.reduce(((e,t)=>t.lastModified>e?t.lastModified:e),0)}_computeDirectorySize(e){return e.contents.reduce(((e,t)=>e+t.size),0)}}const Vt=async e=>{if(e.isFile)return new Promise(((t,s)=>{e.file(t,s)}));j.debug("Handling recursive file tree",{entry:e.name});const t=e,s=await $t(t),i=(await Promise.all(s.map(Vt))).flat();return new Mt(t.name,i)},$t=e=>{const t=e.createReader();return new Promise(((e,s)=>{const i=[],n=()=>{t.readEntries((t=>{t.length?(i.push(...t),n()):e(i)}),(e=>{s(e)}))};n()}))},Wt=async e=>{const t=(0,m.H4)();if(!await t.exists(e)){j.debug("Directory does not exist, creating it",{absolutePath:e}),await t.createDirectory(e,{recursive:!0});const s=await t.stat(e,{details:!0,data:(0,m.VL)()});(0,U.Ic)("files:node:created",(0,m.Al)(s.data))}},Ht=async(e,t,s)=>{try{const i=e.filter((e=>s.find((t=>t.basename===(e instanceof File?e.name:e.basename))))).filter(Boolean),n=e.filter((e=>!i.includes(e))),{selected:a,renamed:o}=await(0,ot.o)(t.path,i,s);return j.debug("Conflict resolution",{uploads:n,selected:a,renamed:o}),0===a.length&&0===o.length?((0,c.cf)((0,u.Tl)("files","Conflicts resolution skipped")),j.info("User skipped the conflict resolution"),[]):[...n,...a,...o]}catch(e){console.error(e),(0,c.Qg)((0,u.Tl)("files","Upload cancelled")),j.error("User cancelled the upload")}return[]};var qt=i(36882),Yt=i(39285);const Gt=(0,g.C)("files_sharing","sharePermissions",m.aX.NONE);let Kt;var Qt;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(Qt||(Qt={}));const Jt=e=>{const t=e.reduce(((e,t)=>Math.min(e,t.permissions)),m.aX.ALL);return Boolean(t&m.aX.DELETE)},Xt=e=>!!(e=>e.every((e=>!JSON.parse(e.attributes?.["share-attributes"]??"[]").some((e=>"permissions"===e.scope&&!1===e.value&&"download"===e.key)))))(e)&&!e.some((e=>e.permissions===m.aX.NONE))&&(!(0,$.f)()||Boolean(Gt&m.aX.CREATE));var Zt=i(36117);const es=e=>(0,m.Al)(e),ts=e=>Jt(e)?Xt(e)?Qt.MOVE_OR_COPY:Qt.MOVE:Qt.COPY,ss=async function(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==m.pt.Folder)throw new Error((0,u.Tl)("files","Destination is not a folder"));if(s===Qt.MOVE&&e.dirname===t.path)throw new Error((0,u.Tl)("files","This file/folder is already in that directory"));if(`${t.path}/`.startsWith(`${e.path}/`))throw new Error((0,u.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));o.Ay.set(e,"status",m.zI.LOADING);const n=function(e,t,s){const i=e===Qt.MOVE?(0,u.Tl)("files",'Moving "{source}" to "{destination}" …',{source:t,destination:s}):(0,u.Tl)("files",'Copying "{source}" to "{destination}" …',{source:t,destination:s});let n;return n=(0,c.cf)(`<span class="icon icon-loading-small toast-loading-icon"></span> ${i}`,{isHTML:!0,timeout:c.DH,onRemove:()=>{n?.hideToast(),n=void 0}}),()=>n&&n.hideToast()}(s,e.basename,t.path),a=(Kt||(Kt=new f.A({concurrency:5})),Kt);return await a.add((async()=>{const a=e=>1===e?(0,u.Tl)("files","(copy)"):(0,u.Tl)("files","(copy %n)",void 0,e);try{const n=(0,m.H4)(),o=(0,d.join)(m.lJ,e.path),r=(0,d.join)(m.lJ,t.path);if(s===Qt.COPY){let s=e.basename;if(!i){const t=await n.getDirectoryContents(r);s=(0,m.E6)(e.basename,t.map((e=>e.basename)),{suffix:a,ignoreFileExtension:e.type===m.pt.Folder})}if(await n.copyFile(o,(0,d.join)(r,s)),e.dirname===t.path){const{data:e}=await n.stat((0,d.join)(r,s),{details:!0,data:(0,m.VL)()});(0,U.Ic)("files:node:created",(0,m.Al)(e))}}else{if(!i){const s=await function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";e=(0,d.join)(m.lJ,e);const t=new AbortController,s=(0,m.VL)();return new Zt.CancelablePromise((async(i,n,a)=>{a((()=>t.abort()));try{const n=await Ut.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),a=n.data[0],o=n.data.slice(1);if(a.filename!==e&&`${a.filename}/`!==e)throw j.debug(`Exepected "${e}" but got filename "${a.filename}" instead.`),new Error("Root node does not match requested path");i({folder:es(a),contents:o.map((e=>{try{return es(e)}catch(t){return j.error(`Invalid node detected '${e.basename}'`,{error:t}),null}})).filter(Boolean)})}catch(e){n(e)}}))}(t.path);if((0,ot.h)([e],s.contents))try{const{selected:i,renamed:n}=await(0,ot.o)(t.path,[e],s.contents);if(!i.length&&!n.length)return}catch(e){return void(0,c.Qg)((0,u.Tl)("files","Move cancelled"))}}try{await n.moveFile(o,(0,d.join)(r,e.basename))}catch(e){const t=new DOMParser,s=await(e.response?.text()),i=t.parseFromString(s??"","text/xml").querySelector("message")?.textContent;throw i&&(0,c.Qg)(i),e}(0,U.Ic)("files:node:deleted",e)}}catch(e){if((0,I.F0)(e)){if(412===e.response?.status)throw new Error((0,u.Tl)("files","A file or folder with that name already exists in this folder"));if(423===e.response?.status)throw new Error((0,u.Tl)("files","The files are locked"));if(404===e.response?.status)throw new Error((0,u.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw j.debug(e),new Error}finally{o.Ay.set(e,"status",""),n()}}))};async function is(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const{resolve:i,reject:n,promise:a}=Promise.withResolvers(),o=s.map((e=>e.fileid)).filter(Boolean);return(0,c.a1)((0,u.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!o.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t).setButtonFactory(((t,n)=>{const a=[],o=(0,d.basename)(n),r=s.map((e=>e.dirname)),l=s.map((e=>e.path));return e!==Qt.COPY&&e!==Qt.MOVE_OR_COPY||a.push({label:o?(0,u.Tl)("files","Copy to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,u.Tl)("files","Copy"),type:"primary",icon:qt,disabled:t.some((e=>!(e.permissions&m.aX.CREATE))),async callback(e){i({destination:e[0],action:Qt.COPY})}}),r.includes(n)||l.includes(n)||t.some((e=>!(e.permissions&m.aX.CREATE)))||e!==Qt.MOVE&&e!==Qt.MOVE_OR_COPY||a.push({label:o?(0,u.Tl)("files","Move to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,u.Tl)("files","Move"),type:e===Qt.MOVE?"primary":"secondary",icon:Yt,async callback(e){i({destination:e[0],action:Qt.MOVE})}}),a})).build().pick().catch((e=>{j.debug(e),e instanceof c.vT?i(!1):n(new Error((0,u.Tl)("files","Move or copy operation failed")))})),a}new m.hY({id:"move-copy",displayName(e){switch(ts(e)){case Qt.MOVE:return(0,u.Tl)("files","Move");case Qt.COPY:return(0,u.Tl)("files","Copy");case Qt.MOVE_OR_COPY:return(0,u.Tl)("files","Move or copy")}},iconSvgInline:()=>Yt,enabled:(e,t)=>"public-file-share"!==t.id&&!!e.every((e=>e.root?.startsWith("/files/")))&&e.length>0&&(Jt(e)||Xt(e)),async exec(e,t,s){const i=ts([e]);let n;try{n=await is(i,s,[e])}catch(e){return j.error(e),!1}if(!1===n)return(0,c.cf)((0,u.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e.displayname})),null;try{return await ss(e,n.destination,n.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,c.Qg)(e.message),null)}},async execBatch(e,t,s){const i=ts(e),n=await is(i,s,e);if(!1===n)return(0,c.cf)(1===e.length?(0,u.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e[0].displayname}):(0,u.Tl)("files","Cancelled move or copy operation")),e.map((()=>null));const a=e.map((async e=>{try{return await ss(e,n.destination,n.action),!0}catch(t){return j.error(`Failed to ${n.action} node`,{node:e,error:t}),!1}}));return await Promise.all(a)},order:15});const ns=async e=>{const t=e.filter((e=>"file"===e.kind||(j.debug("Skipping dropped item",{kind:e.kind,type:e.type}),!1))).map((e=>e?.getAsEntry?.()??e?.webkitGetAsEntry?.()??e));let s=!1;const i=new Mt("root");for(const e of t)if(e instanceof DataTransferItem){j.warn("Could not get FilesystemEntry of item, falling back to file");const t=e.getAsFile();if(null===t){j.warn("Could not process DataTransferItem",{type:e.type,kind:e.kind}),(0,c.Qg)((0,u.Tl)("files","One of the dropped files could not be processed"));continue}if("httpd/unix-directory"===t.type||!t.type){s||(j.warn("Browser does not support Filesystem API. Directories will not be uploaded"),(0,c.I9)((0,u.Tl)("files","Your browser does not support the Filesystem API. Directories will not be uploaded")),s=!0);continue}i.contents.push(t)}else try{i.contents.push(await Vt(e))}catch(e){j.error("Error while traversing file tree",{error:e})}return i},as=async(e,t,s)=>{const i=(0,ot.g)();if(await(0,ot.h)(e.contents,s)&&(e.contents=await Ht(e.contents,t,s)),0===e.contents.length)return j.info("No files to upload",{root:e}),(0,c.cf)((0,u.Tl)("files","No files to upload")),[];j.debug(`Uploading files to ${t.path}`,{root:e,contents:e.contents});const n=[],a=async(e,s)=>{for(const o of e.contents){const e=(0,d.join)(s,o.name);if(o instanceof Mt){const s=(0,h.HS)(m.lJ,t.path,e);try{console.debug("Processing directory",{relativePath:e}),await Wt(s),await a(o,e)}catch(e){(0,c.Qg)((0,u.Tl)("files","Unable to create the directory {directory}",{directory:o.name})),j.error("",{error:e,absolutePath:s,directory:o})}}else j.debug("Uploading file to "+(0,d.join)(t.path,e),{file:o}),n.push(i.upload(e,o,t.source))}};i.pause(),await a(e,"/"),i.start();const o=(await Promise.allSettled(n)).filter((e=>"rejected"===e.status));return o.length>0?(j.error("Error while uploading files",{errors:o}),(0,c.Qg)((0,u.Tl)("files","Some files could not be uploaded")),[]):(j.debug("Files uploaded successfully"),(0,c.Te)((0,u.Tl)("files","Files uploaded successfully")),Promise.all(n))},os=async function(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const n=[];if(await(0,ot.h)(e,s)&&(e=await Ht(e,t,s)),0===e.length)return j.info("No files to process",{nodes:e}),void(0,c.cf)((0,u.Tl)("files","No files to process"));for(const s of e)o.Ay.set(s,"status",m.zI.LOADING),n.push(ss(s,t,i?Qt.COPY:Qt.MOVE,!0));const a=await Promise.allSettled(n);e.forEach((e=>o.Ay.set(e,"status",void 0)));const r=a.filter((e=>"rejected"===e.status));if(r.length>0)return j.error("Error while copying or moving files",{errors:r}),void(0,c.Qg)(i?(0,u.Tl)("files","Some files could not be copied"):(0,u.Tl)("files","Some files could not be moved"));j.debug("Files copy/move successful"),(0,c.Te)(i?(0,u.Tl)("files","Files copied successfully"):(0,u.Tl)("files","Files moved successfully"))},rs=(0,a.nY)("dragging",{state:()=>({dragging:[]}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o.Ay.set(this,"dragging",e)},reset(){o.Ay.set(this,"dragging",[])}}}),ls=(0,o.pM)({name:"BreadCrumbs",components:{NcBreadcrumbs:jt.A,NcBreadcrumb:Ot.A,NcIconSvgWrapper:We.A},props:{path:{type:String,default:"/"}},setup(){const e=rs(),t=Pt(),s=It(),i=Bt(),n=Rt(),a=Nt(),{currentView:o,views:r}=He();return{draggingStore:e,filesStore:t,pathsStore:s,selectionStore:i,uploaderStore:n,currentView:o,fileListWidth:a,views:r}},computed:{dirs(){var e;return["/",...this.path.split("/").filter(Boolean).map((e="/",t=>e+=`${t}/`)).map((e=>e.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map(((e,t)=>{const s=this.getFileSourceFromPath(e),i=s?this.getNodeFromSource(s):void 0;return{dir:e,exact:!0,name:this.getDirDisplayName(e),to:this.getTo(e,i),disableDrop:t===this.dirs.length-1}}))},isUploadInProgress(){return 0!==this.uploaderStore.queue.length},wrapUploadProgressBar(){return this.isUploadInProgress&&this.fileListWidth<512},viewIcon(){return this.currentView?.icon??'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-home" viewBox="0 0 24 24"><path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" /></svg>'},selectedFiles(){return this.selectionStore.selected},draggingFiles(){return this.draggingStore.dragging}},methods:{getNodeFromSource(e){return this.filesStore.getNode(e)},getFileSourceFromPath(e){return(this.currentView&&this.pathsStore.getPath(this.currentView.id,e))??null},getDirDisplayName(e){if("/"===e)return this.currentView?.name||(0,u.Tl)("files","Home");const t=this.getFileSourceFromPath(e),s=t?this.getNodeFromSource(t):void 0;return s?.displayname||(0,d.basename)(e)},getTo(e,t){if("/"===e)return{...this.$route,params:{view:this.currentView?.id},query:{}};if(void 0===t){const t=this.views.find((t=>t.params?.dir===e));return{...this.$route,params:{fileid:t?.params?.fileid??""},query:{dir:e}}}return{...this.$route,params:{fileid:String(t.fileid)},query:{dir:t.path}}},onClick(e){e?.query?.dir===this.$route.query.dir&&this.$emit("reload")},onDragOver(e,t){e.dataTransfer&&(t!==this.dirs[this.dirs.length-1]?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none")},async onDrop(e,t){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault();const s=this.draggingFiles,i=[...e.dataTransfer?.items||[]],n=await ns(i),a=await(this.currentView?.getContents(t)),o=a?.folder;if(!o)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));const r=!!(o.permissions&m.aX.CREATE),l=e.ctrlKey;if(!r||0!==e.button)return;if(j.debug("Dropped",{event:e,folder:o,selection:s,fileTree:n}),n.contents.length>0)return void await as(n,o,a.contents);const d=s.map((e=>this.filesStore.getNode(e)));await os(d,o,a.contents,l),s.some((e=>this.selectedFiles.includes(e)))&&(j.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},titleForSection(e,t){return t?.to?.query?.dir===this.$route.query.dir?(0,u.Tl)("files","Reload current directory"):0===e?(0,u.Tl)("files",'Go to the "{dir}" directory',t):null},ariaForSection(e){return e?.to?.query?.dir===this.$route.query.dir?(0,u.Tl)("files","Reload current directory"):null},t:u.Tl}});var ds=i(31643),cs={};cs.styleTagTransform=Le(),cs.setAttributes=_e(),cs.insert=Ce().bind(null,"head"),cs.domAPI=be(),cs.insertStyleElement=Te(),we()(ds.A,cs),ds.A&&ds.A.locals&&ds.A.locals;const ms=(0,ae.A)(ls,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcBreadcrumbs",{staticClass:"files-list__breadcrumbs",class:{"files-list__breadcrumbs--with-progress":e.wrapUploadProgressBar},attrs:{"data-cy-files-content-breadcrumbs":"","aria-label":e.t("files","Current directory path")},scopedSlots:e._u([{key:"actions",fn:function(){return[e._t("actions")]},proxy:!0}],null,!0)},e._l(e.sections,(function(s,i){return t("NcBreadcrumb",e._b({key:s.dir,attrs:{dir:"auto",to:s.to,"force-icon-text":0===i&&e.fileListWidth>=486,title:e.titleForSection(i,s),"aria-description":e.ariaForSection(s)},on:{drop:function(t){return e.onDrop(t,s.dir)}},nativeOn:{click:function(t){return e.onClick(s.to)},dragover:function(t){return e.onDragOver(t,s.dir)}},scopedSlots:e._u([0===i?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{size:20,svg:e.viewIcon}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",s,!1))})),1)}),[],!1,null,"7b525302",null).exports;var gs=i(17334),us=i.n(gs);const fs={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ps=(0,ae.A)(fs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tray-arrow-down-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,hs=(0,o.pM)({name:"DragAndDropNotice",components:{TrayArrowDownIcon:ps},props:{currentFolder:{type:Object,required:!0}},setup(){const{currentView:e}=He();return{currentView:e}},data:()=>({dragover:!1}),computed:{canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},cantUploadLabel(){return this.isQuotaExceeded?this.t("files","Your have used your space quota and cannot upload files anymore"):this.canUpload?null:this.t("files","You do not have permission to upload or create files here.")},resetDragOver(){return us()((()=>{this.dragover=!1}),3e3)}},mounted(){const e=window.document.getElementById("app-content-vue");e.addEventListener("dragover",this.onDragOver),e.addEventListener("dragleave",this.onDragLeave),e.addEventListener("drop",this.onContentDrop)},beforeDestroy(){const e=window.document.getElementById("app-content-vue");e.removeEventListener("dragover",this.onDragOver),e.removeEventListener("dragleave",this.onDragLeave),e.removeEventListener("drop",this.onContentDrop)},methods:{onDragOver(e){e.preventDefault();const t=e.dataTransfer?.types.includes("Files");t&&(this.dragover=!0,this.resetDragOver())},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget??e.target)||this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},onContentDrop(e){j.debug("Drag and drop cancelled, dropped on empty space",{event:e}),e.preventDefault(),this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},async onDrop(e){if(this.cantUploadLabel)return void(0,c.Qg)(this.cantUploadLabel);if(this.$el.querySelector("tbody")?.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t=[...e.dataTransfer?.items||[]],s=await ns(t),i=await(this.currentView?.getContents(this.currentFolder.path)),n=i?.folder;if(!n)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));if(e.button)return;j.debug("Dropped",{event:e,folder:n,fileTree:s});const a=(await as(s,n,i.contents)).findLast((e=>e.status!==ot.S.FAILED&&!e.file.webkitRelativePath.includes("/")&&e.response?.headers?.["oc-fileid"]&&2===e.source.replace(n.source,"").split("/").length));if(void 0!==a){j.debug("Scrolling to last upload in current folder",{lastUpload:a});const e={path:this.$route.path,params:{...this.$route.params,fileid:String(a.response.headers["oc-fileid"])},query:{...this.$route.query}};delete e.query.openfile,this.$router.push(e)}this.dragover=!1,this.resetDragOver.clear()},t:u.Tl}});var vs=i(63569),ws={};ws.styleTagTransform=Le(),ws.setAttributes=_e(),ws.insert=Ce().bind(null,"head"),ws.domAPI=be(),ws.insertStyleElement=Te(),we()(vs.A,ws),vs.A&&vs.A.locals&&vs.A.locals;const As=(0,ae.A)(hs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{directives:[{name:"show",rawName:"v-show",value:e.dragover,expression:"dragover"}],staticClass:"files-list__drag-drop-notice",attrs:{"data-cy-files-drag-drop-area":""},on:{drop:e.onDrop}},[t("div",{staticClass:"files-list__drag-drop-notice-wrapper"},[e.canUpload&&!e.isQuotaExceeded?[t("TrayArrowDownIcon",{attrs:{size:48}}),e._v(" "),t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.t("files","Drag and drop files here to upload"))+"\n\t\t\t")])]:[t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.cantUploadLabel)+"\n\t\t\t")])]],2)])}),[],!1,null,"6efab70c",null).exports,bs={name:"FilesListHeader",props:{header:{type:Object,required:!0},currentFolder:{type:Object,required:!0},currentView:{type:Object,required:!0}},computed:{enabled(){return this.header.enabled?.(this.currentFolder,this.currentView)??!0}},watch:{enabled(e){e&&this.header.updated(this.currentFolder,this.currentView)},currentFolder(){this.header.updated(this.currentFolder,this.currentView)}},mounted(){console.debug("Mounted",this.header.id),this.header.render(this.$refs.mount,this.currentFolder,this.currentView)}},ys=(0,ae.A)(bs,(function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.enabled,expression:"enabled"}],class:`files-list__header-${e.header.id}`},[t("span",{ref:"mount"})])}),[],!1,null,null,null).exports;var Cs=i(4604);const ks=(0,a.nY)("actionsmenu",{state:()=>({opened:null})});var _s=i(98469);const xs=(0,a.nY)("renaming",(()=>{const e=(0,o.KR)(),t=(0,o.KR)(""),s=(0,o.KR)(!1);function n(){t.value="",e.value=void 0}return(0,U.B1)("files:node:rename",(s=>{e.value=s,t.value=s.basename})),{$reset:n,newNodeName:t,rename:async function(){if(void 0===e.value)throw new Error("No node is currently being renamed");if(s.value)return!1;s.value=!0;let a=e.value;o.Ay.set(a,"status",m.zI.LOADING);const r=(0,se.O)();let l=t.value.trim();const c=a.basename,g=(0,d.extname)(c),f=(0,d.extname)(l);a.type===m.pt.File&&g!==f&&r.userConfig.show_dialog_file_extension&&!await async function(e,t){const{promise:s,resolve:n}=Promise.withResolvers();return(0,_s.S)((0,o.$V)((()=>Promise.all([i.e(4208),i.e(7807)]).then(i.bind(i,77807)))),{oldExtension:e,newExtension:t},(e=>n(Boolean(e)))),await s}(g,f)&&(l=(0,d.basename)(l,f)+g);const p=a.encodedSource;try{return c!==l&&(a.rename(l),j.debug("Moving file to",{destination:a.encodedSource,oldEncodedSource:p}),await(0,I.Ay)({method:"MOVE",url:p,headers:{Destination:a.encodedSource,Overwrite:"F"}}),g!==f&&(a=await Et(a.path)),(0,U.Ic)("files:node:updated",a),(0,U.Ic)("files:node:renamed",a),(0,U.Ic)("files:node:moved",{node:a,oldSource:`${(0,d.dirname)(a.source)}/${c}`}),e.value===a&&n(),!0)}catch(t){if(j.error("Error while renaming file",{error:t}),a.rename(c),(0,I.F0)(t)){if(404===t?.response?.status)throw new Error((0,u.t)("files",'Could not rename "{oldName}", it does not exist any more',{oldName:c}));if(412===t?.response?.status)throw new Error((0,u.t)("files",'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.',{newName:l,dir:(0,d.basename)(e.value.dirname)}))}throw new Error((0,u.t)("files",'Could not rename "{oldName}"',{oldName:c}))}finally{o.Ay.set(a,"status",void 0),s.value=!1}},renamingNode:e}})),Ts={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},watch:{source(){this.updateRootElement()},currentView(){this.updateRootElement()}},mounted(){this.updateRootElement()},methods:{async updateRootElement(){const e=await this.render(this.source,this.currentView);e?this.$el.replaceChildren(e):this.$el.replaceChildren()}}},Ss=(0,ae.A)(Ts,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports,Ls={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ns=(0,ae.A)(Ls,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Fs=i(15502);const Us=(0,o.pM)({data:()=>({openedSubmenu:null}),computed:{enabledSubmenuActions(){return this.enabledFileActions.reduce(((e,t)=>(void 0!==t.parent&&(e[t.parent]||(e[t.parent]=[]),e[t.parent].push(t)),e)),{})}},methods:{isValidMenu(e){return this.enabledSubmenuActions[e.id]?.length>0},async onBackToMenuClick(e){e&&(this.openedSubmenu=null,await this.$nextTick(),this.$nextTick((()=>{const t=this.$refs[`action-batch-${e.id}`]?.[0]||this.$refs[`action-${e.id}`]?.[0];t&&t.$el.querySelector("button")?.focus()})))}}}),Es=(0,o.pM)({name:"FileEntryActions",components:{ArrowLeftIcon:Ns,CustomElementRender:Ss,NcActionButton:dt.A,NcActions:lt.A,NcActionSeparator:Fs.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A},mixins:[Us],props:{opened:{type:Boolean,default:!1},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t}=zt(),s=ee(),i=Nt();return{activeStore:s,currentDir:t,currentView:e,enabledFileActions:(0,o.WQ)("enabledFileActions",[]),filesListWidth:i,t:u.t}},computed:{isActive(){return this.activeStore?.activeNode?.source===this.source.source},isLoading(){return this.source.status===m.zI.LOADING},enabledInlineActions(){return this.filesListWidth<768||this.gridMode?[]:this.enabledFileActions.filter((e=>{try{return e?.inline?.(this.source,this.currentView)}catch(t){return j.error("Error while checking if action is inline",{action:e,error:t}),!1}}))},enabledRenderActions(){return this.gridMode?[]:this.enabledFileActions.filter((e=>"function"==typeof e.renderInline))},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=[...this.enabledInlineActions,...this.enabledFileActions.filter((e=>e.default!==m.m9.HIDDEN&&"function"!=typeof e.renderInline))].filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>!e.parent)).map((e=>e.id));return e.filter((e=>!(e.parent&&t.includes(e.parent))))},openedMenu:{get(){return this.opened},set(e){this.$emit("update:opened",e)}},getBoundariesElement:()=>document.querySelector(".app-content > .files-list")},watch:{openedMenu(){this.openedSubmenu=null}},created(){(0,l.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),(0,l.C)("a",this.onKeyDown,{stop:!0,prevent:!0})},methods:{actionDisplayName(e){try{if((this.gridMode||this.filesListWidth<768&&e.inline)&&"function"==typeof e.title){const t=e.title([this.source],this.currentView);if(t)return t}return e.displayName([this.source],this.currentView)}catch(t){return j.error("Error while getting action display name",{action:e,error:t}),e.id}},isLoadingAction(e){return!!this.isActive&&this.activeStore?.activeAction?.id===e.id},async onActionClick(e){this.enabledSubmenuActions[e.id]?this.openedSubmenu=e:(this.activeStore.setActiveNode(this.source),await te(e))},onKeyDown(e){this.isActive&&("Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1),"a"!==e.key||this.openedMenu||(this.openedMenu=!0))},onMenuClose(){this.openedSubmenu=null},onMenuClosed(){this.openedMenu=!1}}}),Is=Es;var Ps=i(20040),zs={};zs.styleTagTransform=Le(),zs.setAttributes=_e(),zs.insert=Ce().bind(null,"head"),zs.domAPI=be(),zs.insertStyleElement=Te(),we()(Ps.A,zs),Ps.A&&Ps.A.locals&&Ps.A.locals;var Bs=i(19372),Ds={};Ds.styleTagTransform=Le(),Ds.setAttributes=_e(),Ds.insert=Ce().bind(null,"head"),Ds.domAPI=be(),Ds.insertStyleElement=Te(),we()(Bs.A,Ds),Bs.A&&Bs.A.locals&&Bs.A.locals;var Rs=(0,ae.A)(Is,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-actions",attrs:{"data-cy-files-list-row-actions":""}},[e._l(e.enabledRenderActions,(function(s){return t("CustomElementRender",{key:s.id,staticClass:"files-list__row-action--inline",class:"files-list__row-action-"+s.id,attrs:{"current-view":e.currentView,render:s.renderInline,source:e.source}})})),e._v(" "),t("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":e.getBoundariesElement,container:e.getBoundariesElement,"force-name":!0,type:"tertiary","force-menu":0===e.enabledInlineActions.length,inline:e.enabledInlineActions.length,open:e.openedMenu},on:{close:e.onMenuClose,closed:e.onMenuClosed}},[e._l(e.enabledMenuActions,(function(s,i){return t("NcActionButton",{key:s.id,ref:`action-${s.id}`,refInFor:!0,staticClass:"files-list__row-action",class:{[`files-list__row-action-${s.id}`]:!0,"files-list__row-action--inline":i<e.enabledInlineActions.length,"files-list__row-action--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-row-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.title?.([e.source],e.currentView),title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon"):t("NcIconSvgWrapper",{staticClass:"files-list__row-action-icon",attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-action-back",attrs:{"data-cy-files-list-row-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-action--submenu",class:`files-list__row-action-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-row-action":s.id,title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])}))]:e._e()],2)],2)}),[],!1,null,"7f0265e5",null);const Os=Rs.exports,js=(0,o.pM)({name:"FileEntryCheckbox",components:{NcCheckboxRadioSwitch:ze.A,NcLoadingIcon:gt.A},props:{fileid:{type:Number,required:!0},isLoading:{type:Boolean,default:!1},nodes:{type:Array,required:!0},source:{type:Object,required:!0}},setup(){const e=Bt(),t=function(){const e=(0,a.nY)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(e){e||(e=window.event),o.Ay.set(this,"altKey",!!e.altKey),o.Ay.set(this,"ctrlKey",!!e.ctrlKey),o.Ay.set(this,"metaKey",!!e.metaKey),o.Ay.set(this,"shiftKey",!!e.shiftKey)}}})(...arguments);return e._initialized||(window.addEventListener("keydown",e.onEvent),window.addEventListener("keyup",e.onEvent),window.addEventListener("mousemove",e.onEvent),e._initialized=!0),e}();return{activeStore:ee(),keyboardStore:t,selectionStore:e,t:u.Tl}},computed:{isActive(){return this.activeStore.activeNode?.source===this.source.source},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},index(){return this.nodes.findIndex((e=>e.source===this.source.source))},isFile(){return this.source.type===m.pt.File},ariaLabel(){return this.isFile?(0,u.Tl)("files",'Toggle selection for file "{displayName}"',{displayName:this.source.basename}):(0,u.Tl)("files",'Toggle selection for folder "{displayName}"',{displayName:this.source.basename})},loadingLabel(){return this.isFile?(0,u.Tl)("files","File is loading"):(0,u.Tl)("files","Folder is loading")}},created(){(0,l.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0}),(0,l.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0,shift:!0})},methods:{onSelectionChange(e){const t=this.index,s=this.selectionStore.lastSelectedIndex;if(this.keyboardStore?.shiftKey&&null!==s){const e=this.selectedFiles.includes(this.source.source),i=Math.min(t,s),n=Math.max(s,t),a=this.selectionStore.lastSelection,o=this.nodes.map((e=>e.source)).slice(i,n+1).filter(Boolean),r=[...a,...o].filter((t=>!e||t!==this.source.source));return j.debug("Shift key pressed, selecting all files in between",{start:i,end:n,filesToSelect:o,isAlreadySelected:e}),void this.selectionStore.set(r)}const i=e?[...this.selectedFiles,this.source.source]:this.selectedFiles.filter((e=>e!==this.source.source));j.debug("Updating selection",{selection:i}),this.selectionStore.set(i),this.selectionStore.setLastIndex(t)},resetSelection(){this.selectionStore.reset()},onToggleSelect(){this.isActive&&(j.debug("Toggling selection for file",{source:this.source}),this.onSelectionChange(!this.isSelected))}}}),Ms=(0,ae.A)(js,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[e.isLoading?t("NcLoadingIcon",{attrs:{name:e.loadingLabel}}):t("NcCheckboxRadioSwitch",{attrs:{"aria-label":e.ariaLabel,checked:e.isSelected,"data-cy-files-list-row-checkbox":""},on:{"update:checked":e.onSelectionChange}})],1)}),[],!1,null,null,null).exports;var Vs=i(55042);const $s={name:"FileMultipleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ws=(0,ae.A)($s,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-multiple-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Hs=i(25866);const qs=o.Ay.extend({name:"DragAndDropPreview",components:{FileMultipleIcon:Ws,FolderIcon:Hs.A},data:()=>({nodes:[]}),computed:{isSingleNode(){return 1===this.nodes.length},isSingleFolder(){return this.isSingleNode&&this.nodes[0].type===m.pt.Folder},name(){return this.size?`${this.summary} – ${this.size}`:this.summary},size(){const e=this.nodes.reduce(((e,t)=>e+t.size||0),0),t=parseInt(e,10)||0;return"number"!=typeof t||t<0?null:(0,m.v7)(t,!0)},summary(){if(this.isSingleNode){const e=this.nodes[0];return e.attributes?.displayname||e.basename}return kt(this.nodes)}},methods:{update(e){this.nodes=e,this.$refs.previewImg.replaceChildren(),e.slice(0,3).forEach((e=>{const t=document.querySelector(`[data-cy-files-list-row-fileid="${e.fileid}"] .files-list__row-icon img`);t&&this.$refs.previewImg.appendChild(t.parentNode.cloneNode(!0))})),this.$nextTick((()=>{this.$emit("loaded",this.$el)}))}}}),Ys=qs;var Gs=i(20768),Ks={};Ks.styleTagTransform=Le(),Ks.setAttributes=_e(),Ks.insert=Ce().bind(null,"head"),Ks.domAPI=be(),Ks.insertStyleElement=Te(),we()(Gs.A,Ks),Gs.A&&Gs.A.locals&&Gs.A.locals;const Qs=(0,ae.A)(Ys,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list-drag-image"},[t("span",{staticClass:"files-list-drag-image__icon"},[t("span",{ref:"previewImg"}),e._v(" "),e.isSingleFolder?t("FolderIcon"):t("FileMultipleIcon")],1),e._v(" "),t("span",{staticClass:"files-list-drag-image__name"},[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports,Js=o.Ay.extend(Qs);let Xs;o.Ay.directive("onClickOutside",Vs.z0);const Zs=(0,m.qK)(),ei=(0,o.pM)({props:{source:{type:[m.vd,m.ZH,m.bP],required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0},isMtimeAvailable:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},provide(){return{defaultFileAction:(0,o.EW)((()=>this.defaultFileAction)),enabledFileActions:(0,o.EW)((()=>this.enabledFileActions))}},data:()=>({dragover:!1,gridMode:!1}),computed:{fileid(){return this.source.fileid??0},uniqueId(){return function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0}(this.source.source)},isLoading(){return this.source.status===m.zI.LOADING},displayName(){return this.source.displayname||this.source.basename},basename(){return""===this.extension?this.displayName:this.displayName.slice(0,0-this.extension.length)},extension(){return this.source.type===m.pt.Folder?"":(0,d.extname)(this.displayName)},draggingFiles(){return this.draggingStore.dragging},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},isActive(){return String(this.fileid)===String(this.currentFileId)},isFailedSource(){return this.source.status===m.zI.FAILED},canDrag(){if(this.isRenaming)return!1;if(this.isFailedSource)return!1;const e=e=>!!(e?.permissions&m.aX.UPDATE);return this.selectedFiles.length>0?this.selectedFiles.map((e=>this.filesStore.getNode(e))).every(e):e(this.source)},canDrop(){return this.source.type===m.pt.Folder&&!this.isFailedSource&&!this.draggingFiles.includes(this.source.source)&&!!(this.source.permissions&m.aX.CREATE)},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId.toString()},set(e){!1===e&&this.actionsMenuStore.opened!==this.uniqueId.toString()||(this.actionsMenuStore.opened=e?this.uniqueId.toString():null)}},mtime(){return this.source.mtime&&!isNaN(this.source.mtime.getDate())?this.source.mtime:this.source.crtime&&!isNaN(this.source.crtime.getDate())?this.source.crtime:null},mtimeOpacity(){if(!this.mtime)return{};const e=26784e5,t=Date.now()-this.mtime.getTime();if(t<0)return{};const s=Math.max(0,e-t);return{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(100*s/e)}%, var(--color-text-maxcontrast))`}},enabledFileActions(){return this.source.status===m.zI.FAILED?[]:Zs.filter((e=>{if(!e.enabled)return!0;try{return e.enabled([this.source],this.currentView)}catch(t){return j.error("Error while checking action",{action:e,error:t}),!1}})).sort(((e,t)=>(e.order||0)-(t.order||0)))},defaultFileAction(){return this.enabledFileActions.find((e=>void 0!==e.default))}},watch:{source(e,t){e.source!==t.source&&this.resetState()},openedMenu(){if(null===this.actionsMenuStore.opened){j.debug("All actions menu closed, resetting right menu position...");const e=this.$el?.closest("main.app-content");null!==e&&(e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y"))}}},beforeDestroy(){this.resetState()},methods:{resetState(){this.$refs?.preview?.reset?.(),this.openedMenu=!1},onRightClick(e){if(this.openedMenu)return;if(this.isFailedSource)return;if(this.gridMode){const e=this.$el?.closest("main.app-content");e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y")}else{const t=this.$el?.closest("main.app-content"),s=t.getBoundingClientRect();j.debug("Setting actions menu position..."),t.style.setProperty("--mouse-pos-x",Math.max(0,e.clientX-s.left-200)+"px"),t.style.setProperty("--mouse-pos-y",Math.max(0,e.clientY-s.top)+"px")}const t=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&t?"global":this.uniqueId.toString(),e.preventDefault(),e.stopPropagation()},execDefaultAction(e){if(this.isRenaming)return;if(Boolean(2&e.button)||e.button>4)return;if(this.isFailedSource)return;const t=e.ctrlKey||e.metaKey||1===e.button;if(t||!this.defaultFileAction){if((0,$.f)()&&!function(e){if(!(e.permissions&m.aX.READ))return!1;if(!0===e.attributes["hide-download"]||"true"===e.attributes["hide-download"])return!1;if(e.attributes["share-attributes"]){const t=JSON.parse(e.attributes["share-attributes"]||"[]").find((e=>{let{scope:t,key:s}=e;return"permissions"===t&&"download"===s}));if(void 0!==t)return!0===t.value}return!0}(this.source))return;const s=(0,$.f)()?this.source.encodedSource:(0,T.Jv)("/f/{fileId}",{fileId:this.fileid});return e.preventDefault(),e.stopPropagation(),void window.open(s,t?"_blank":"_self")}e.preventDefault(),e.stopPropagation(),this.defaultFileAction.exec(this.source,this.currentView,this.currentDir)},openDetailsIfAvailable(e){e.preventDefault(),e.stopPropagation(),Z?.enabled?.([this.source],this.currentView)&&Z.exec(this.source,this.currentView,this.currentDir)},onDragOver(e){this.dragover=this.canDrop,this.canDrop?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none"},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget)||(this.dragover=!1)},async onDragStart(e){if(e.stopPropagation(),!this.canDrag||!this.fileid)return e.preventDefault(),void e.stopPropagation();j.debug("Drag started",{event:e}),e.dataTransfer?.clearData?.(),this.renamingStore.$reset(),this.selectedFiles.includes(this.source.source)?this.draggingStore.set(this.selectedFiles):this.draggingStore.set([this.source.source]);const t=this.draggingStore.dragging.map((e=>this.filesStore.getNode(e))),s=await(async e=>new Promise((t=>{Xs||(Xs=(new Js).$mount(),document.body.appendChild(Xs.$el)),Xs.update(e),Xs.$on("loaded",(()=>{t(Xs.$el),Xs.$off("loaded")}))})))(t);e.dataTransfer?.setDragImage(s,-10,-10)},onDragEnd(){this.draggingStore.reset(),this.dragover=!1,j.debug("Drag ended")},async onDrop(e){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault(),e.stopPropagation();const t=this.draggingFiles,s=[...e.dataTransfer?.items||[]],i=await ns(s),n=await(this.currentView?.getContents(this.source.path)),a=n?.folder;if(!a)return void(0,c.Qg)(this.t("files","Target folder does not exist any more"));if(!this.canDrop||e.button)return;const o=e.ctrlKey;if(this.dragover=!1,j.debug("Dropped",{event:e,folder:a,selection:t,fileTree:i}),0===t.length&&i.contents.length>0)return void await as(i,a,n.contents);const r=t.map((e=>this.filesStore.getNode(e)));await os(r,a,n.contents,o),t.some((e=>this.selectedFiles.includes(e)))&&(j.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},t:u.t}});var ti=i(82182);function si(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e.trim())return(0,u.t)("files","Filename must not be empty.");try{return(0,m.KT)(e),""}catch(e){if(!(e instanceof m.di))throw e;switch(e.reason){case m.nF.Character:return(0,u.t)("files",'"{char}" is not allowed inside a filename.',{char:e.segment},void 0,{escape:t});case m.nF.ReservedName:return(0,u.t)("files",'"{segment}" is a reserved name and not allowed for filenames.',{segment:e.segment},void 0,{escape:!1});case m.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,u.t)("files",'"{extension}" is not an allowed filetype.',{extension:e.segment},void 0,{escape:!1}):(0,u.t)("files",'Filenames must not end with "{extension}".',{extension:e.segment},void 0,{escape:!1});default:return(0,u.t)("files","Invalid filename.")}}}const ii=(0,o.pM)({name:"FileEntryName",components:{NcTextField:ti.A},props:{basename:{type:String,required:!0},extension:{type:String,required:!0},nodes:{type:Array,required:!0},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t}=zt(),s=Nt(),i=xs();return{currentView:e,defaultFileAction:(0,o.WQ)("defaultFileAction"),directory:t,filesListWidth:s,renamingStore:i}},computed:{isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},newName:{get(){return this.renamingStore.newNodeName},set(e){this.renamingStore.newNodeName=e}},renameLabel(){return{[m.pt.File]:(0,u.Tl)("files","Filename"),[m.pt.Folder]:(0,u.Tl)("files","Folder name")}[this.source.type]},linkTo(){if(this.source.status===m.zI.FAILED)return{is:"span",params:{title:(0,u.Tl)("files","This node is unavailable")}};if(this.defaultFileAction){const e=this.defaultFileAction.displayName([this.source],this.currentView);return{is:"button",params:{"aria-label":e,title:e,tabindex:"0"}}}return{is:"span"}}},watch:{isRenaming:{immediate:!0,handler(e){e&&this.startRenaming()}},newName(){const e=this.newName.trim?.()||"",t=this.$refs.renameInput?.$el.querySelector("input");if(!t)return;let s=si(e);""===s&&this.checkIfNodeExists(e)&&(s=(0,u.Tl)("files","Another entry with the same name already exists.")),this.$nextTick((()=>{this.isRenaming&&(t.setCustomValidity(s),t.reportValidity())}))}},methods:{checkIfNodeExists(e){return this.nodes.find((t=>t.basename===e&&t!==this.source))},startRenaming(){this.$nextTick((()=>{const e=this.$refs.renameInput?.$el.querySelector("input");if(!e)return void j.error("Could not find the rename input");e.focus();const t=this.source.basename.length-(this.source.extension??"").length;e.setSelectionRange(0,t),e.dispatchEvent(new Event("keyup"))}))},stopRenaming(){this.isRenaming&&this.renamingStore.$reset()},async onRename(){const e=this.newName.trim?.()||"";if(!this.$refs.renameForm.checkValidity())return void(0,c.Qg)((0,u.Tl)("files","Invalid filename.")+" "+si(e));const t=this.source.basename;if(e!==t)try{await this.renamingStore.rename()&&((0,c.Te)((0,u.Tl)("files",'Renamed "{oldName}" to "{newName}"',{oldName:t,newName:this.source.basename})),this.$nextTick((()=>{const e=this.$refs.basename;e?.focus()})))}catch(e){j.error(e),(0,c.Qg)(e.message),this.startRenaming()}else this.stopRenaming()},t:u.Tl}}),ni=ii;var ai=i(24146),oi={};oi.styleTagTransform=Le(),oi.setAttributes=_e(),oi.insert=Ce().bind(null,"head"),oi.domAPI=be(),oi.insertStyleElement=Te(),we()(ai.A,oi),ai.A&&ai.A.locals&&ai.A.locals;const ri=(0,ae.A)(ni,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.isRenaming?t("form",{directives:[{name:"on-click-outside",rawName:"v-on-click-outside",value:e.onRename,expression:"onRename"}],ref:"renameForm",staticClass:"files-list__row-rename",attrs:{"aria-label":e.t("files","Rename file")},on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.onRename.apply(null,arguments)}}},[t("NcTextField",{ref:"renameInput",attrs:{label:e.renameLabel,autofocus:!0,minlength:1,required:!0,value:e.newName,enterkeyhint:"done"},on:{"update:value":function(t){e.newName=t},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.stopRenaming.apply(null,arguments)}}})],1):t(e.linkTo.is,e._b({ref:"basename",tag:"component",staticClass:"files-list__row-name-link",attrs:{"data-cy-files-list-row-name-link":""}},"component",e.linkTo.params,!1),[t("span",{staticClass:"files-list__row-name-text",attrs:{dir:"auto"}},[t("span",{staticClass:"files-list__row-name-",domProps:{textContent:e._s(e.basename)}}),e._v(" "),t("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:e._s(e.extension)}})])])}),[],!1,null,"08f77d70",null).exports;var li=i(95341),di=i(43261),ci=i(60557);const mi={name:"FolderOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gi=(0,ae.A)(mi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-open-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ui={name:"KeyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fi=(0,ae.A)(ui,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon key-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,pi={name:"NetworkIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hi=(0,ae.A)(pi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon network-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,vi={name:"TagIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wi=(0,ae.A)(vi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tag-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,Ai={name:"PlayCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bi=(0,ae.A)(Ai,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon play-circle-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,16.5V7.5L16,12M12,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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,yi={name:"CollectivesIcon",props:{title:{type:String,default:""},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ci=(0,ae.A)(yi,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon collectives-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 16 16"}},[t("path",{attrs:{d:"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z"}}),e._v(" "),t("path",{attrs:{d:"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z"}}),e._v(" "),t("path",{attrs:{d:"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z"}}),e._v(" "),t("path",{attrs:{d:"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z"}})])])}),[],!1,null,null,null).exports,ki=(0,o.pM)({name:"FavoriteIcon",components:{NcIconSvgWrapper:We.A},data:()=>({StarSvg:H}),async mounted(){await this.$nextTick();const e=this.$el.querySelector("svg");e?.setAttribute?.("viewBox","-4 -4 30 30")},methods:{t:u.Tl}});var _i=i(4613),xi={};xi.styleTagTransform=Le(),xi.setAttributes=_e(),xi.insert=Ce().bind(null,"head"),xi.domAPI=be(),xi.insertStyleElement=Te(),we()(_i.A,xi),_i.A&&_i.A.locals&&_i.A.locals;const Ti=(0,ae.A)(ki,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("files","Favorite"),svg:e.StarSvg}})}),[],!1,null,"0b2a4155",null).exports,Si=(0,o.pM)({name:"FileEntryPreview",components:{AccountGroupIcon:di.A,AccountPlusIcon:ft,CollectivesIcon:Ci,FavoriteIcon:Ti,FileIcon:ci.A,FolderIcon:Hs.A,FolderOpenIcon:gi,KeyIcon:fi,LinkIcon:wt.A,NetworkIcon:hi,TagIcon:wi},props:{source:{type:Object,required:!0},dragover:{type:Boolean,default:!1},gridMode:{type:Boolean,default:!1}},setup:()=>({userConfigStore:(0,se.O)(),isPublic:(0,$.f)(),publicSharingToken:(0,$.G)()}),data:()=>({backgroundFailed:void 0,backgroundLoaded:!1}),computed:{isFavorite(){return 1===this.source.attributes.favorite},userConfig(){return this.userConfigStore.userConfig},cropPreviews(){return!0===this.userConfig.crop_image_previews},previewUrl(){if(this.source.type===m.pt.Folder)return null;if(!0===this.backgroundFailed)return null;if(!0!==this.source.attributes["has-preview"]&&void 0!==this.source.mime&&"application/octet-stream"!==this.source.mime){const e=(0,T.Jv)("/core/mimeicon?mime={mime}",{mime:this.source.mime});return new URL(window.location.origin+e).href}try{const e=this.source.attributes.previewUrl||(this.isPublic?(0,T.Jv)("/apps/files_sharing/publicpreview/{token}?file={file}",{token:this.publicSharingToken,file:this.source.path}):(0,T.Jv)("/core/preview?fileId={fileid}",{fileid:String(this.source.fileid)})),t=new URL(window.location.origin+e);t.searchParams.set("x",this.gridMode?"128":"32"),t.searchParams.set("y",this.gridMode?"128":"32"),t.searchParams.set("mimeFallback","true");const s=this.source?.attributes?.etag||"";return t.searchParams.set("v",s.slice(0,6)),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(e){return null}},fileOverlay(){return void 0!==this.source.attributes["metadata-files-live-photo"]?bi:null},folderOverlay(){if(this.source.type!==m.pt.Folder)return null;if(1===this.source?.attributes?.["is-encrypted"])return fi;if(this.source?.attributes?.["is-tag"])return wi;const e=Object.values(this.source?.attributes?.["share-types"]||{}).flat();if(e.some((e=>e===at.I.Link||e===at.I.Email)))return wt.A;if(e.length>0)return ft;switch(this.source?.attributes?.["mount-type"]){case"external":case"external-session":return hi;case"group":return di.A;case"collective":return Ci;case"shared":return ft}return null},hasBlurhash(){return void 0!==this.source.attributes["metadata-blurhash"]}},mounted(){this.hasBlurhash&&this.$refs.canvas&&this.drawBlurhash()},methods:{reset(){this.backgroundFailed=void 0,this.backgroundLoaded=!1;const e=this.$refs.previewImg;e&&(e.src="")},onBackgroundLoad(){this.backgroundFailed=!1,this.backgroundLoaded=!0},onBackgroundError(e){""!==e.target?.src&&(this.backgroundFailed=!0,this.backgroundLoaded=!1)},drawBlurhash(){const e=this.$refs.canvas,t=e.width,s=e.height,i=(0,li.D4)(this.source.attributes["metadata-blurhash"],t,s),n=e.getContext("2d");if(null===n)return void j.error("Cannot create context for blurhash canvas");const a=n.createImageData(t,s);a.data.set(i),n.putImageData(a,0,0)},t:u.Tl}}),Li=Si,Ni=(0,ae.A)(Li,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"files-list__row-icon"},["folder"===e.source.type?[e.dragover?e._m(0):[e._m(1),e._v(" "),e.folderOverlay?t(e.folderOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay"}):e._e()]]:e.previewUrl?t("span",{staticClass:"files-list__row-icon-preview-container"},[!e.hasBlurhash||!0!==e.backgroundFailed&&e.backgroundLoaded?e._e():t("canvas",{ref:"canvas",staticClass:"files-list__row-icon-blurhash",attrs:{"aria-hidden":"true"}}),e._v(" "),!0!==e.backgroundFailed?t("img",{key:e.source.fileid,ref:"previewImg",staticClass:"files-list__row-icon-preview",class:{"files-list__row-icon-preview--loaded":!1===e.backgroundFailed},attrs:{alt:"",loading:"lazy",src:e.previewUrl},on:{error:e.onBackgroundError,load:e.onBackgroundLoad}}):e._e()]):e._m(2),e._v(" "),e.isFavorite?t("span",{staticClass:"files-list__row-icon-favorite"},[e._m(3)],1):e._e(),e._v(" "),e.fileOverlay?t(e.fileOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay files-list__row-icon-overlay--file"}):e._e()],2)}),[function(){var e=this._self._c;return this._self._setupProxy,e("FolderOpenIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FolderIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FileIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FavoriteIcon")}],!1,null,null,null).exports,Fi=(0,o.pM)({name:"FileEntry",components:{CustomElementRender:Ss,FileEntryActions:Os,FileEntryCheckbox:Ms,FileEntryName:ri,FileEntryPreview:Ni,NcDateTime:Cs.A},mixins:[ei],props:{isMimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1}},setup(){const e=ks(),t=rs(),s=Pt(),i=xs(),n=Bt(),a=Nt(),{currentView:o}=He(),{directory:r,fileId:l}=zt();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:i,selectionStore:n,currentDir:r,currentFileId:l,currentView:o,filesListWidth:a}},computed:{rowListeners(){return{...this.isRenaming?{}:{dragstart:this.onDragStart,dragover:this.onDragOver},contextmenu:this.onRightClick,dragleave:this.onDragLeave,dragend:this.onDragEnd,drop:this.onDrop}},columns(){return this.filesListWidth<512||this.compact?[]:this.currentView.columns||[]},mime(){if(this.source.type===m.pt.Folder)return this.t("files","Folder");if(!this.source.mime||"application/octet-stream"===this.source.mime)return(0,u.t)("files","Unknown file type");if(window.OC?.MimeTypeList?.names?.[this.source.mime])return window.OC.MimeTypeList.names[this.source.mime];const e=this.source.mime.split("/")[0],t=this.source?.extension?.toUpperCase().replace(/^\./,"")||"";return"image"===e?(0,u.t)("files","{ext} image",{ext:t}):"video"===e?(0,u.t)("files","{ext} video",{ext:t}):"audio"===e?(0,u.t)("files","{ext} audio",{ext:t}):"text"===e?(0,u.t)("files","{ext} text",{ext:t}):this.source.mime},size(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?this.t("files","Pending"):(0,m.v7)(e,!0)},sizeOpacity(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(Math.min(100,100*Math.pow(e/10485760,2)))}%, var(--color-text-maxcontrast))`}}},created(){(0,l.C)("Enter",this.triggerDefaultAction,{stop:!0,prevent:!0})},methods:{formatFileSize:m.v7,triggerDefaultAction(){this.isActive&&this.defaultFileAction?.exec(this.source,this.currentView,this.currentDir)}}}),Ui=(0,ae.A)(Fi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",e._g({staticClass:"files-list__row",class:{"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading,"files-list__row--active":e.isActive},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag}},e.rowListeners),[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{source:e.source,dragover:e.dragover},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),t("FileEntryActions",{directives:[{name:"show",rawName:"v-show",value:!e.isRenamingSmallScreen,expression:"!isRenamingSmallScreen"}],ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}}),e._v(" "),e.isMimeAvailable?t("td",{staticClass:"files-list__row-mime",attrs:{title:e.mime,"data-cy-files-list-row-mime":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.mime))])]):e._e(),e._v(" "),!e.compact&&e.isSizeAvailable?t("td",{staticClass:"files-list__row-size",style:e.sizeOpacity,attrs:{"data-cy-files-list-row-size":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.size))])]):e._e(),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{"ignore-seconds":"",timestamp:e.mtime}}):t("span",[e._v(e._s(e.t("files","Unknown date")))])],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("td",{key:s.id,staticClass:"files-list__row-column-custom",class:`files-list__row-${e.currentView.id}-${s.id}`,attrs:{"data-cy-files-list-row-column-custom":s.id},on:{click:e.openDetailsIfAvailable}},[t("CustomElementRender",{attrs:{"current-view":e.currentView,render:s.render,source:e.source}})],1)}))],2)}),[],!1,null,null,null).exports,Ei=(0,o.pM)({name:"FileEntryGrid",components:{FileEntryActions:Os,FileEntryCheckbox:Ms,FileEntryName:ri,FileEntryPreview:Ni,NcDateTime:Cs.A},mixins:[ei],inheritAttrs:!1,setup(){const e=ks(),t=rs(),s=Pt(),i=xs(),n=Bt(),{currentView:a}=He(),{directory:o,fileId:r}=zt();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:i,selectionStore:n,currentDir:o,currentFileId:r,currentView:a}},data:()=>({gridMode:!0})}),Ii=(0,ae.A)(Ei,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row",class:{"files-list__row--active":e.isActive,"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag},on:{contextmenu:e.onRightClick,dragover:e.onDragOver,dragleave:e.onDragLeave,dragstart:e.onDragStart,dragend:e.onDragEnd,drop:e.onDrop}},[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{dragover:e.dragover,"grid-mode":!0,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,"grid-mode":!0,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{"ignore-seconds":"",timestamp:e.mtime}}):e._e()],1):e._e(),e._v(" "),t("FileEntryActions",{ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{"grid-mode":!0,opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}})],1)}),[],!1,null,null,null).exports;var Pi=i(41944),zi=i(42678);const Bi=(0,o.pM)({__name:"FileListFilters",setup(e){const t=Ze(),s=(0,o.EW)((()=>t.filtersWithUI)),i=(0,o.EW)((()=>t.activeChips)),n=(0,o.KR)([]);return(0,o.nT)((()=>{n.value.forEach(((e,t)=>s.value[t].mount(e)))})),{__sfc:!0,filterStore:t,visualFilters:s,activeChips:i,filterElements:n,t:u.t,NcAvatar:Pi.A,NcChip:zi.A}}});var Di=i(28665),Ri={};Ri.styleTagTransform=Le(),Ri.setAttributes=_e(),Ri.insert=Ce().bind(null,"head"),Ri.domAPI=be(),Ri.insertStyleElement=Te(),we()(Di.A,Ri),Di.A&&Di.A.locals&&Di.A.locals;const Oi=(0,ae.A)(Bi,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t("div",{staticClass:"file-list-filters"},[t("div",{staticClass:"file-list-filters__filter",attrs:{"data-cy-files-filters":""}},e._l(s.visualFilters,(function(e){return t("span",{key:e.id,ref:"filterElements",refInFor:!0})})),0),e._v(" "),s.activeChips.length>0?t("ul",{staticClass:"file-list-filters__active",attrs:{"aria-label":s.t("files","Active filters")}},e._l(s.activeChips,(function(i,n){return t("li",{key:n},[t(s.NcChip,{attrs:{"aria-label-close":s.t("files","Remove filter"),"icon-svg":i.icon,text:i.text},on:{close:i.onclick},scopedSlots:e._u([i.user?{key:"icon",fn:function(){return[t(s.NcAvatar,{attrs:{"disable-menu":"","show-user-status":!1,size:24,user:i.user}})]},proxy:!0}:null],null,!0)})],1)})),0):e._e()])}),[],!1,null,"3d6bff7e",null).exports,ji=(0,o.pM)({name:"FilesListTableFooter",props:{currentView:{type:m.Ss,required:!0},isMimeAvailable:{type:Boolean,default:!1},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const e=It(),t=Pt(),{directory:s}=zt();return{filesStore:t,pathsStore:e,directory:s}},computed:{currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return this.filesStore.getNode(e)},columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},totalSize(){return this.currentFolder?.size?(0,m.v7)(this.currentFolder.size,!0):(0,m.v7)(this.nodes.reduce(((e,t)=>e+(t.size??0)),0),!0)}},methods:{classForColumn(e){return{"files-list__row-column-custom":!0,[`files-list__row-${this.currentView.id}-${e.id}`]:!0}},t:u.Tl}});var Mi=i(18789),Vi={};Vi.styleTagTransform=Le(),Vi.setAttributes=_e(),Vi.insert=Ce().bind(null,"head"),Vi.domAPI=be(),Vi.insertStyleElement=Te(),we()(Mi.A,Vi),Mi.A&&Mi.A.locals&&Mi.A.locals;const $i=(0,ae.A)(ji,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",[t("th",{staticClass:"files-list__row-checkbox"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("files","Total rows summary")))])]),e._v(" "),t("td",{staticClass:"files-list__row-name"},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("span",[e._v(e._s(e.summary))])]),e._v(" "),t("td",{staticClass:"files-list__row-actions"}),e._v(" "),e.isMimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mime"}):e._e(),e._v(" "),e.isSizeAvailable?t("td",{staticClass:"files-list__column files-list__row-size"},[t("span",[e._v(e._s(e.totalSize))])]):e._e(),e._v(" "),e.isMtimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mtime"}):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s)},[t("span",[e._v(e._s(s.summary?.(e.nodes,e.currentView)))])])}))],2)}),[],!1,null,"e916ded0",null).exports;var Wi=i(25384),Hi=i(33388);const qi=o.Ay.extend({setup(){const{currentView:e}=He();return{currentView:e}},computed:{...(0,a.aH)(Ye,["getConfig","setSortingBy","toggleSortingDirection"]),sortingMode(){return this.getConfig(this.currentView.id)?.sorting_mode||this.currentView?.defaultSortKey||"basename"},isAscSorting(){const e=this.getConfig(this.currentView.id)?.sorting_direction;return"desc"!==e}},methods:{toggleSortBy(e){this.sortingMode!==e?this.setSortingBy(e,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),Yi=(0,o.pM)({name:"FilesListTableHeaderButton",components:{MenuDown:Wi.A,MenuUp:Hi.A,NcButton:ct.A},mixins:[qi],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{t:u.Tl}});var Gi=i(35613),Ki={};Ki.styleTagTransform=Le(),Ki.setAttributes=_e(),Ki.insert=Ce().bind(null,"head"),Ki.domAPI=be(),Ki.insertStyleElement=Te(),we()(Gi.A,Ki),Gi.A&&Gi.A.locals&&Gi.A.locals;const Qi=(0,ae.A)(Yi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcButton",{class:["files-list__column-sort-button",{"files-list__column-sort-button--active":e.sortingMode===e.mode,"files-list__column-sort-button--size":"size"===e.sortingMode}],attrs:{alignment:"size"===e.mode?"end":"start-reverse",type:"tertiary",title:e.name},on:{click:function(t){return e.toggleSortBy(e.mode)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.sortingMode!==e.mode||e.isAscSorting?t("MenuUp",{staticClass:"files-list__column-sort-button-icon"}):t("MenuDown",{staticClass:"files-list__column-sort-button-icon"})]},proxy:!0}])},[e._v(" "),t("span",{staticClass:"files-list__column-sort-button-text"},[e._v(e._s(e.name))])])}),[],!1,null,"c3dbd7e0",null).exports,Ji=(0,o.pM)({name:"FilesListTableHeader",components:{FilesListTableHeaderButton:Qi,NcCheckboxRadioSwitch:ze.A},mixins:[qi],props:{isMimeAvailable:{type:Boolean,default:!1},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const e=Pt(),t=Bt(),{currentView:s}=He();return{filesStore:e,selectionStore:t,currentView:s}},computed:{columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},dir(){return(this.$route?.query?.dir||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const e=(0,u.Tl)("files","Toggle selection for all files and folders");return{"aria-label":e,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:e}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},created(){(0,l.C)("a",this.onToggleAll,{ctrl:!0,stop:!0,prevent:!0}),(0,l.C)("Escape",this.resetSelection,{stop:!0,prevent:!0})},methods:{ariaSortForMode(e){return this.sortingMode===e?this.isAscSorting?"ascending":"descending":null},classForColumn(e){return{"files-list__column":!0,"files-list__column--sortable":!!e.sort,"files-list__row-column-custom":!0,[`files-list__row-${this.currentView?.id}-${e.id}`]:!0}},onToggleAll(){if(arguments.length>0&&void 0!==arguments[0]&&!arguments[0])j.debug("Cleared selection"),this.selectionStore.reset();else{const e=this.nodes.map((e=>e.source)).filter(Boolean);j.debug("Added all nodes to selection",{selection:e}),this.selectionStore.setLastIndex(null),this.selectionStore.set(e)}},resetSelection(){this.isNoneSelected||this.selectionStore.reset()},t:u.Tl}});var Xi=i(4511),Zi={};Zi.styleTagTransform=Le(),Zi.setAttributes=_e(),Zi.insert=Ce().bind(null,"head"),Zi.domAPI=be(),Zi.insertStyleElement=Te(),we()(Xi.A,Zi),Xi.A&&Xi.A.locals&&Xi.A.locals;const en=(0,ae.A)(Ji,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row-head"},[t("th",{staticClass:"files-list__column files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-files-list-selection-checkbox":""},on:{"update:checked":e.onToggleAll}},"NcCheckboxRadioSwitch",e.selectAllBind,!1))],1),e._v(" "),t("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",attrs:{"aria-sort":e.ariaSortForMode("basename")}},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Name"),mode:"basename"}})],1),e._v(" "),t("th",{staticClass:"files-list__row-actions"}),e._v(" "),e.isMimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mime",class:{"files-list__column--sortable":e.isMimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","File type"),mode:"mime"}})],1):e._e(),e._v(" "),e.isSizeAvailable?t("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":e.isSizeAvailable},attrs:{"aria-sort":e.ariaSortForMode("size")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Size"),mode:"size"}})],1):e._e(),e._v(" "),e.isMtimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mtime",class:{"files-list__column--sortable":e.isMtimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mtime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Modified"),mode:"mtime"}})],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s),attrs:{"aria-sort":e.ariaSortForMode(s.id)}},[s.sort?t("FilesListTableHeaderButton",{attrs:{name:s.title,mode:s.id}}):t("span",[e._v("\n\t\t\t"+e._s(s.title)+"\n\t\t")])],1)}))],2)}),[],!1,null,"06480c18",null).exports,tn=(0,m.qK)(),sn=(0,o.pM)({name:"FilesListTableHeaderActions",components:{ArrowLeftIcon:Ns,NcActions:lt.A,NcActionButton:dt.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A},mixins:[Us],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup(){const e=ks(),t=Pt(),s=Bt(),i=Nt(),{directory:n}=zt();return{directory:n,fileListWidth:i,actionsMenuStore:e,filesStore:t,selectionStore:s}},data:()=>({loading:null}),computed:{enabledFileActions(){return tn.filter((e=>!e.renderInline)).filter((e=>e.default!==m.m9.HIDDEN)).filter((e=>!e.enabled||e.enabled(this.nodes,this.currentView))).sort(((e,t)=>(e.order||0)-(t.order||0)))},enabledInlineActions(){return this.enabledFileActions.filter((e=>void 0===e.parent)).filter((e=>void 0!==e.execBatch)).filter((e=>!this.isValidMenu(e))).slice(0,this.inlineActions)},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=this.enabledFileActions.filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>e.parent)).map((e=>e.parent)),s=e.filter((e=>e.execBatch?!e.parent:t.includes(e.id))).filter((e=>!this.enabledInlineActions.includes(e)));return[...this.enabledInlineActions,...s]},nodes(){return this.selectedNodes.map((e=>this.getNode(e))).filter(Boolean)},areSomeNodesLoading(){return this.nodes.some((e=>e.status===m.zI.LOADING))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(e){this.actionsMenuStore.opened=e?"global":null}},inlineActions(){return this.fileListWidth<512?0:this.fileListWidth<768?1:this.fileListWidth<1024?2:3}},methods:{getNode(e){return this.filesStore.getNode(e)},async onActionClick(e){if(this.enabledSubmenuActions[e.id])return void(this.openedSubmenu=e);let t=e.id;try{t=e.displayName(this.nodes,this.currentView)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}const s=this.selectedNodes;try{this.loading=e.id,this.nodes.forEach((e=>{this.$set(e,"status",m.zI.LOADING)}));const i=await e.execBatch(this.nodes,this.currentView,this.directory);if(!i.some((e=>null!==e)))return void this.selectionStore.reset();if(i.some((e=>!1===e))){const e=s.filter(((e,t)=>!1===i[t]));if(this.selectionStore.set(e),i.some((e=>null===e)))return;return void(0,c.Qg)(this.t("files",'"{displayName}" failed on some elements',{displayName:t}))}(0,c.Te)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:t})),this.selectionStore.reset()}catch(s){j.error("Error while executing action",{action:e,e:s}),(0,c.Qg)(this.t("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loading=null,this.nodes.forEach((e=>{this.$set(e,"status",void 0)}))}},t:u.Tl}}),nn=sn;var an=i(3619),on={};on.styleTagTransform=Le(),on.setAttributes=_e(),on.insert=Ce().bind(null,"head"),on.domAPI=be(),on.insertStyleElement=Te(),we()(an.A,on),an.A&&an.A.locals&&an.A.locals;var rn=(0,ae.A)(nn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{"data-cy-files-list-selection-actions":""}},[t("NcActions",{ref:"actionsMenu",attrs:{container:"#app-content-vue",disabled:!!e.loading||e.areSomeNodesLoading,"force-name":!0,inline:e.enabledInlineActions.length,"menu-name":e.enabledInlineActions.length<=1?e.t("files","Actions"):null,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-batch-${s.id}`,refInFor:!0,class:{[`files-list__row-actions-batch-${s.id}`]:!0,"files-list__row-actions-batch--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-selection-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-actions-batch-back",attrs:{"data-cy-files-list-selection-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-actions-batch--submenu",class:`files-list__row-actions-batch-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-selection-action":s.id,"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t\t")])}))]:e._e()],2)],1)}),[],!1,null,"c463105a",null);const ln=rn.exports,dn=(0,o.pM)({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},extraProps:{type:Object,default:()=>({})},scrollToIndex:{type:Number,default:0},gridMode:{type:Boolean,default:!1},caption:{type:String,default:""}},setup:()=>({fileListWidth:Nt()}),data(){return{index:this.scrollToIndex,beforeHeight:0,footerHeight:0,headerHeight:0,tableHeight:0,resizeObserver:null}},computed:{isReady(){return this.tableHeight>0},bufferItems(){return this.gridMode?this.columnCount:3},itemHeight(){return this.gridMode?246:55},itemWidth:()=>198,visibleRows(){return Math.floor((this.tableHeight-this.headerHeight)/this.itemHeight)},rowCount(){return this.visibleRows+this.bufferItems/this.columnCount*2+1},columnCount(){return this.gridMode?Math.floor(this.fileListWidth/this.itemWidth):1},startIndex(){const e=this.index-this.index%this.columnCount;return Math.max(0,e-this.bufferItems)},shownItems(){return this.gridMode?this.rowCount*this.columnCount:this.rowCount},renderedItems(){if(!this.isReady)return[];const e=this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems),t=e.filter((e=>Object.values(this.$_recycledPool).includes(e[this.dataKey]))).map((e=>e[this.dataKey])),s=Object.keys(this.$_recycledPool).filter((e=>!t.includes(this.$_recycledPool[e])));return e.map((e=>{const t=Object.values(this.$_recycledPool).indexOf(e[this.dataKey]);if(-1!==t)return{key:Object.keys(this.$_recycledPool)[t],item:e};const i=s.pop()||Math.random().toString(36).substr(2);return this.$_recycledPool[i]=e[this.dataKey],{key:i,item:e}}))},totalRowCount(){return Math.ceil(this.dataSources.length/this.columnCount)},tbodyStyle(){const e=Math.round(this.startIndex/this.columnCount),t=Math.max(0,this.totalRowCount-e-this.rowCount);return{paddingBlock:`${e*this.itemHeight}px ${t*this.itemHeight}px`,minHeight:this.totalRowCount*this.itemHeight+"px"}}},watch:{scrollToIndex(e){this.scrollTo(e)},totalRowCount(){this.scrollToIndex&&this.scrollTo(this.scrollToIndex)},columnCount(e,t){0!==t?this.scrollTo(this.index):j.debug("VirtualList: columnCount is 0, skipping scroll")}},mounted(){this.$_recycledPool={},this.resizeObserver=new ResizeObserver(us()((()=>{this.updateHeightVariables(),j.debug("VirtualList: resizeObserver updated"),this.onScroll()}),100)),this.resizeObserver.observe(this.$el),this.resizeObserver.observe(this.$refs.before),this.resizeObserver.observe(this.$refs.filters),this.resizeObserver.observe(this.$refs.footer),this.$nextTick((()=>{this.updateHeightVariables(),this.scrollToIndex&&this.scrollTo(this.scrollToIndex)}))},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{scrollTo(e){if(!this.$el)return;if(this.totalRowCount<this.visibleRows)return void j.debug("VirtualList: Skip scrolling, nothing to scroll",{index:e,totalRows:this.totalRowCount,visibleRows:this.visibleRows});const t=(this.totalRowCount-this.visibleRows)*this.columnCount+(this.columnCount-1);let s=this.indexToScrollPos(Math.min(e,t));this.index=e,e>=this.columnCount&&e<=t?(s-=this.itemHeight/2,this.index=e-this.columnCount):e>t&&(e<=t+this.columnCount?s+=this.footerHeight/2:s+=this.footerHeight),this.$nextTick((()=>{this.$el.scrollTop=s,j.debug(`VirtualList: scrolling to index ${e}`,{clampedIndex:t,scrollTop:s,columnCount:this.columnCount,total:this.totalRowCount,visibleRows:this.visibleRows,beforeHeight:this.beforeHeight})}))},onScroll(){this._onScrollHandle??=requestAnimationFrame((()=>{this._onScrollHandle=null;const e=this.scrollPosToIndex(this.$el.scrollTop);e!==this.index&&(this.index=Math.max(0,Math.floor(e)),this.$emit("scroll"))}))},scrollPosToIndex(e){const t=e-this.beforeHeight;return Math.max(0,Math.floor(t/this.itemHeight))*this.columnCount},indexToScrollPos(e){return Math.floor(e/this.columnCount)*this.itemHeight+this.beforeHeight},updateHeightVariables(){this.tableHeight=this.$el?.clientHeight??0,this.beforeHeight=this.$refs.before?.clientHeight??0,this.footerHeight=this.$refs.footer?.clientHeight??0;const e=this.$refs.thead?.clientHeight??0,t=this.$refs.filters?.clientHeight??0;this.headerHeight=e+t}}}),cn=(0,ae.A)(dn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list",class:{"files-list--grid":e.gridMode},attrs:{"data-cy-files-list":""},on:{"&scroll":function(t){return e.onScroll.apply(null,arguments)}}},[t("div",{ref:"before",staticClass:"files-list__before"},[e._t("before")],2),e._v(" "),t("div",{ref:"filters",staticClass:"files-list__filters"},[e._t("filters")],2),e._v(" "),e.$scopedSlots["header-overlay"]?t("div",{staticClass:"files-list__thead-overlay"},[e._t("header-overlay")],2):e._e(),e._v(" "),t("table",{staticClass:"files-list__table",class:{"files-list__table--with-thead-overlay":!!e.$scopedSlots["header-overlay"]}},[e.caption?t("caption",{staticClass:"hidden-visually"},[e._v("\n\t\t\t"+e._s(e.caption)+"\n\t\t")]):e._e(),e._v(" "),t("thead",{ref:"thead",staticClass:"files-list__thead",attrs:{"data-cy-files-list-thead":""}},[e._t("header")],2),e._v(" "),t("tbody",{staticClass:"files-list__tbody",style:e.tbodyStyle,attrs:{"data-cy-files-list-tbody":""}},e._l(e.renderedItems,(function(s,i){let{key:n,item:a}=s;return t(e.dataComponent,e._b({key:n,tag:"component",attrs:{source:a,index:i}},"component",e.extraProps,!1))})),1),e._v(" "),t("tfoot",{ref:"footer",staticClass:"files-list__tfoot",attrs:{"data-cy-files-list-tfoot":""}},[e._t("footer")],2)])])}),[],!1,null,null,null).exports,mn=(0,o.pM)({name:"FilesListVirtual",components:{FileListFilters:Oi,FilesListHeader:ys,FilesListTableFooter:$i,FilesListTableHeader:en,VirtualList:cn,FilesListTableHeaderActions:ln},props:{currentView:{type:m.Ss,required:!0},currentFolder:{type:m.vd,required:!0},nodes:{type:Array,required:!0},summary:{type:String,required:!0}},setup(){const e=ee(),t=Bt(),s=(0,se.O)(),i=Nt(),{fileId:n,openDetails:a,openFile:o}=zt();return{fileId:n,fileListWidth:i,headers:_t(),openDetails:a,openFile:o,activeStore:e,selectionStore:t,userConfigStore:s,n:u.n,t:u.t}},data:()=>({FileEntry:Ui,FileEntryGrid:Ii,scrollToIndex:0,openFileId:null}),computed:{userConfig(){return this.userConfigStore.userConfig},isMimeAvailable(){return!!this.userConfig.show_mime_column&&!(this.fileListWidth<1024)&&this.nodes.some((e=>void 0!==e.mime||"application/octet-stream"!==e.mime))},isMtimeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.mtime))},isSizeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.size))},cantUpload(){return this.currentFolder&&!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},caption(){const e=(0,u.t)("files","List of files and folders.");return[this.currentView.caption||e,this.cantUpload?(0,u.t)("files","You do not have permission to upload or create files here."):null,this.isQuotaExceeded?(0,u.t)("files","You have used your space quota and cannot upload files anymore."):null,(0,u.t)("files","Column headers with buttons are sortable."),(0,u.t)("files","This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.")].filter(Boolean).join("\n")},selectedNodes(){return this.selectionStore.selected},isNoneSelected(){return 0===this.selectedNodes.length}},watch:{fileId:{handler(e){this.scrollToFile(e,!1)},immediate:!0},openFile:{handler(e){e&&this.fileId&&this.handleOpenFile(this.fileId)},immediate:!0},openDetails:{handler(e){this.$nextTick((()=>{e&&this.fileId&&this.openSidebarForFile(this.fileId)}))},immediate:!0}},created(){(0,l.C)("Escape",this.unselectFile,{stop:!0,prevent:!0}),(0,l.C)(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],this.onKeyDown,{stop:!0,prevent:!0})},mounted(){window.document.querySelector("main.app-content").addEventListener("dragover",this.onDragOver),(0,U.B1)("files:sidebar:closed",this.onSidebarClosed)},beforeDestroy(){window.document.querySelector("main.app-content").removeEventListener("dragover",this.onDragOver),(0,U.al)("files:sidebar:closed",this.onSidebarClosed)},methods:{openSidebarForFile(e){const t=this.nodes.find((t=>t.fileid===e));if(t&&Z?.enabled?.([t],this.currentView))return j.debug("Opening sidebar on file "+t.path,{node:t}),void Z.exec(t,this.currentView,this.currentFolder.path);j.error(`Failed to open sidebar on file ${e}, file isn't cached yet !`,{fileId:e,node:t})},scrollToFile(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e){if(e===this.currentFolder.fileid)return;const s=this.nodes.findIndex((t=>t.fileid===e));t&&-1===s&&e!==this.currentFolder.fileid&&(0,c.Qg)((0,u.t)("files","File not found")),this.scrollToIndex=Math.max(0,s)}},unselectFile(){const e={...this.$route.query};delete e.openfile,delete e.opendetails,this.activeStore.clearActiveNode(),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(this.currentFolder.fileid??"")},e,!0)},onSidebarClosed(){if(this.openDetails){const e={...this.$route.query};delete e.opendetails,window.OCP.Files.Router.goToRoute(null,this.$route.params,e)}},async handleOpenFile(e){const t=this.nodes.find((t=>t.fileid===e));if(void 0===t)return;if(t.type===m.pt.File){const e=(0,m.qK)().filter((e=>!!e?.default)).filter((e=>!e.enabled||e.enabled([t],this.currentView))).filter((e=>"download"!==e.id)).sort(((e,t)=>(e.order||0)-(t.order||0))).at(0);if(e)return j.debug("Opening file "+t.path,{node:t}),await e.exec(t,this.currentView,this.currentFolder.path)}const s=this.$route.query;delete s.openfile,s.opendetails="",j.debug("Ignore `openfile` query and replacing with `opendetails` for "+t.path,{node:t}),await this.$router.replace({...this.$route,query:s})},onDragOver(e){const t=e.dataTransfer?.types.includes("Files");if(t)return;e.preventDefault(),e.stopPropagation();const s=this.$refs.table.$el,i=s.getBoundingClientRect().top,n=i+s.getBoundingClientRect().height;e.clientY<i+100?s.scrollTop=s.scrollTop-25:e.clientY>n-50&&(s.scrollTop=s.scrollTop+25)},onKeyDown(e){if("ArrowUp"===e.key||"ArrowDown"===e.key){const t=this.$refs.table?.columnCount??1,s=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,i="ArrowUp"===e.key?s-t:s+t;if(i<0||i>=this.nodes.length)return;const n=this.nodes[i];n&&n?.fileid&&this.setActiveNode(n)}if(this.userConfig.grid_view&&("ArrowLeft"===e.key||"ArrowRight"===e.key)){const t=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,s="ArrowLeft"===e.key?t-1:t+1;if(s<0||s>=this.nodes.length)return;const i=this.nodes[s];i&&i?.fileid&&this.setActiveNode(i)}},setActiveNode(e){j.debug("Navigating to file "+e.path,{node:e,fileid:e.fileid}),this.scrollToFile(e.fileid);const t={...this.$route.query};delete t.openfile,delete t.opendetails,this.activeStore.setActiveNode(e),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(e.fileid)},t,!0)}}}),gn=mn;var un=i(61501),fn={};fn.styleTagTransform=Le(),fn.setAttributes=_e(),fn.insert=Ce().bind(null,"head"),fn.domAPI=be(),fn.insertStyleElement=Te(),we()(un.A,fn),un.A&&un.A.locals&&un.A.locals;var pn=i(77),hn={};hn.styleTagTransform=Le(),hn.setAttributes=_e(),hn.insert=Ce().bind(null,"head"),hn.domAPI=be(),hn.insertStyleElement=Te(),we()(pn.A,hn),pn.A&&pn.A.locals&&pn.A.locals;const vn=(0,ae.A)(gn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("VirtualList",{ref:"table",attrs:{"data-component":e.userConfig.grid_view?e.FileEntryGrid:e.FileEntry,"data-key":"source","data-sources":e.nodes,"grid-mode":e.userConfig.grid_view,"extra-props":{isMimeAvailable:e.isMimeAvailable,isMtimeAvailable:e.isMtimeAvailable,isSizeAvailable:e.isSizeAvailable,nodes:e.nodes},"scroll-to-index":e.scrollToIndex,caption:e.caption},scopedSlots:e._u([{key:"filters",fn:function(){return[t("FileListFilters")]},proxy:!0},e.isNoneSelected?null:{key:"header-overlay",fn:function(){return[t("span",{staticClass:"files-list__selected"},[e._v("\n\t\t\t"+e._s(e.n("files","{count} selected","{count} selected",e.selectedNodes.length,{count:e.selectedNodes.length}))+"\n\t\t")]),e._v(" "),t("FilesListTableHeaderActions",{attrs:{"current-view":e.currentView,"selected-nodes":e.selectedNodes}})]},proxy:!0},{key:"before",fn:function(){return e._l(e.headers,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})}))},proxy:!0},{key:"header",fn:function(){return[t("FilesListTableHeader",{ref:"thead",attrs:{"files-list-width":e.fileListWidth,"is-mime-available":e.isMimeAvailable,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes}})]},proxy:!0},{key:"footer",fn:function(){return[t("FilesListTableFooter",{attrs:{"current-view":e.currentView,"files-list-width":e.fileListWidth,"is-mime-available":e.isMimeAvailable,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes,summary:e.summary}})]},proxy:!0}],null,!0)})}),[],!1,null,"1affbcbc",null).exports,wn=void 0!==(0,E.F)()?.files_sharing,An=(0,o.pM)({name:"FilesList",components:{BreadCrumbs:ms,DragAndDropNotice:As,FilesListHeader:ys,FilesListVirtual:vn,LinkIcon:wt.A,ListViewIcon:bt,NcAppContent:rt.A,NcActions:lt.A,NcActionButton:dt.A,NcButton:ct.A,NcEmptyContent:mt.A,NcIconSvgWrapper:We.A,NcLoadingIcon:gt.A,AccountPlusIcon:ft,UploadPicker:ot.U,ViewGridIcon:Ct,IconAlertCircleOutline:pt.A,IconReload:vt},mixins:[qi],props:{isPublic:{type:Boolean,default:!1}},setup(){const{currentView:e}=He(),{directory:t,fileId:s}=zt(),i=Nt(),n=Pt(),a=Ze(),o=It(),r=Bt(),l=Rt(),d=(0,se.O)(),c=Ye(),m=(0,g.C)("core","config",[])["enable_non-accessible_features"]??!0,f=(0,g.C)("files","forbiddenCharacters",[]);return{currentView:e,directory:t,fileId:s,fileListWidth:i,headers:_t(),t:u.Tl,filesStore:n,filtersStore:a,pathsStore:o,selectionStore:r,uploaderStore:l,userConfigStore:d,viewConfigStore:c,enableGridView:m,forbiddenCharacters:f,ShareType:at.I}},data:()=>({loading:!0,loadingAction:null,error:null,promise:null,dirContentsFiltered:[]}),computed:{getContent(){const e=this.currentView;return async t=>{const s=(0,d.normalize)(`${this.currentFolder?.path??""}/${t??""}`),i=this.filesStore.getNodesByPath(e.id,s);return i.length>0?i:(await e.getContents(s)).contents}},userConfig(){return this.userConfigStore.userConfig},pageHeading(){const e=this.currentView?.name??(0,u.Tl)("files","Files");return void 0===this.currentFolder||"/"===this.directory?e:`${this.currentFolder.displayname} - ${e}`},currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return void 0!==e?this.filesStore.getNode(e):void 0},dirContents(){return(this.currentFolder?._children||[]).map(this.filesStore.getNode).filter((e=>!!e))},dirContentsSorted(){if(!this.currentView)return[];const e=(this.currentView?.columns||[]).find((e=>e.id===this.sortingMode));if(e?.sort&&"function"==typeof e.sort){const t=[...this.dirContentsFiltered].sort(e.sort);return this.isAscSorting?t:t.reverse()}return(0,m.ur)(this.dirContentsFiltered,{sortFavoritesFirst:this.userConfig.sort_favorites_first,sortFoldersFirst:this.userConfig.sort_folders_first,sortingMode:this.sortingMode,sortingOrder:this.isAscSorting?"asc":"desc"})},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const e=this.directory.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:e}}},shareTypesAttributes(){if(this.currentFolder?.attributes?.["share-types"])return Object.values(this.currentFolder?.attributes?.["share-types"]||{}).flat()},shareButtonLabel(){return this.shareTypesAttributes?this.shareButtonType===at.I.Link?(0,u.Tl)("files","Shared by link"):(0,u.Tl)("files","Shared"):(0,u.Tl)("files","Share")},shareButtonType(){return this.shareTypesAttributes?this.shareTypesAttributes.some((e=>e===at.I.Link))?at.I.Link:at.I.User:null},gridViewButtonLabel(){return this.userConfig.grid_view?(0,u.Tl)("files","Switch to list view"):(0,u.Tl)("files","Switch to grid view")},canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},canShare(){return wn&&!this.isPublic&&this.currentFolder&&!!(this.currentFolder.permissions&m.aX.SHARE)},showCustomEmptyView(){return!this.loading&&this.isEmptyDir&&void 0!==this.currentView?.emptyView},enabledFileListActions(){if(!this.currentView||!this.currentFolder)return[];const e=(0,m.g5)().filter((e=>void 0===e.enabled||e.enabled(this.currentView,this.dirContents,this.currentFolder))).toSorted(((e,t)=>e.order-t.order));return e},summary(){const e=this.dirContents.length-this.dirContentsFiltered.length;return kt(this.dirContentsFiltered,e)}},watch:{showCustomEmptyView(e){e&&this.$nextTick((()=>{const e=this.$refs.customEmptyView;this.currentView.emptyView(e)}))},currentView(e,t){e?.id!==t?.id&&(j.debug("View changed",{newView:e,oldView:t}),this.selectionStore.reset(),this.fetchContent())},directory(e,t){j.debug("Directory changed",{newDir:e,oldDir:t}),this.selectionStore.reset(),window.OCA.Files.Sidebar?.close&&window.OCA.Files.Sidebar.close(),this.fetchContent();const s=this.$refs?.filesListVirtual;s?.$el&&(s.$el.scrollTop=0)},dirContents(e){j.debug("Directory contents changed",{view:this.currentView,folder:this.currentFolder,contents:e}),(0,U.Ic)("files:list:updated",{view:this.currentView,folder:this.currentFolder,contents:e}),this.filterDirContent()}},async mounted(){(0,U.B1)("files:node:deleted",this.onNodeDeleted),(0,U.B1)("files:node:updated",this.onUpdatedNode),(0,U.B1)("files:config:updated",this.fetchContent),(0,U.B1)("files:filters:changed",this.filterDirContent),await this.fetchContent(),this.fileId&&(this.dirContents.find((e=>e.fileid.toString()===this.fileId.toString()))||this.currentFolder.fileid.toString()===this.fileId.toString()||(0,c.Qg)((0,u.Tl)("files","The file could not be found")))},unmounted(){(0,U.al)("files:node:deleted",this.onNodeDeleted),(0,U.al)("files:node:updated",this.onUpdatedNode),(0,U.al)("files:config:updated",this.fetchContent)},methods:{async fetchContent(){this.loading=!0,this.error=null;const e=this.directory,t=this.currentView;if(t){this.promise&&"cancel"in this.promise&&(this.promise.cancel(),j.debug("Cancelled previous ongoing fetch")),this.promise=t.getContents(e);try{const{folder:s,contents:i}=await this.promise;j.debug("Fetched contents",{dir:e,folder:s,contents:i}),this.filesStore.updateNodes(i),this.$set(s,"_children",i.map((e=>e.source))),"/"===e?this.filesStore.setRoot({service:t.id,root:s}):s.fileid?(this.filesStore.updateNodes([s]),this.pathsStore.addPath({service:t.id,source:s.source,path:e})):j.fatal("Invalid root folder returned",{dir:e,folder:s,currentView:t}),i.filter((e=>"folder"===e.type)).forEach((s=>{this.pathsStore.addPath({service:t.id,source:s.source,path:(0,d.join)(e,s.basename)})}))}catch(e){j.error("Error while fetching content",{error:e}),this.error=function(e){if(e instanceof Error){if(function(e){return e instanceof Error&&"status"in e&&"response"in e}(e)){const t=e.status||e.response?.status||0;if([400,404,405].includes(t))return(0,u.t)("files","Folder not found");if(403===t)return(0,u.t)("files","This operation is forbidden");if(500===t)return(0,u.t)("files","This directory is unavailable, please check the logs or contact the administrator");if(503===t)return(0,u.t)("files","Storage is temporarily not available")}return(0,u.t)("files","Unexpected error: {error}",{error:e.message})}return(0,u.t)("files","Unknown error")}(e)}finally{this.loading=!1}}else j.debug("The current view doesn't exists or is not ready.",{currentView:t})},onNodeDeleted(e){e.fileid&&e.fileid===this.fileId&&(e.fileid===this.currentFolder?.fileid?window.OCP.Files.Router.goToRoute(null,{view:this.currentView.id},{dir:this.currentFolder?.dirname??"/"}):window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:void 0},{...this.$route.query,openfile:void 0}))},onUpload(e){(0,d.dirname)(e.source)===this.currentFolder.source&&this.fetchContent()},async onUploadFail(e){const t=e.response?.status||0;if(e.status!==ot.S.CANCELLED)if(507!==t)if(404!==t&&409!==t)if(403!==t){if("string"==typeof e.response?.data)try{const t=(new DOMParser).parseFromString(e.response.data,"text/xml"),s=t.getElementsByTagName("s:message")[0]?.textContent??"";if(""!==s.trim())return void(0,c.Qg)((0,u.Tl)("files","Error during upload: {message}",{message:s}))}catch(e){j.error("Could not parse message",{error:e})}0===t?(0,c.Qg)((0,u.Tl)("files","Unknown error during upload")):(0,c.Qg)((0,u.Tl)("files","Error during upload, status code {status}",{status:t}))}else(0,c.Qg)((0,u.Tl)("files","Operation is blocked by access control"));else(0,c.Qg)((0,u.Tl)("files","Target folder does not exist any more"));else(0,c.Qg)((0,u.Tl)("files","Not enough free space"));else(0,c.I9)((0,u.Tl)("files","Upload was cancelled by user"))},onUpdatedNode(e){e?.fileid===this.currentFolder?.fileid&&this.fetchContent()},openSharingSidebar(){this.currentFolder?(window?.OCA?.Files?.Sidebar?.setActiveTab&&window.OCA.Files.Sidebar.setActiveTab("sharing"),Z.exec(this.currentFolder,this.currentView,this.currentFolder.path)):j.debug("No current folder found for opening sharing sidebar")},toggleGridView(){this.userConfigStore.update("grid_view",!this.userConfig.grid_view)},filterDirContent(){let e=this.dirContents;for(const t of this.filtersStore.sortedFilters)e=t.filter(e);this.dirContentsFiltered=e},actionDisplayName(e){let t=e.id;try{t=e.displayName(this.currentView)}catch(t){j.error("Error while getting action display name",{action:e,error:t})}return t},async execFileListAction(e){this.loadingAction=e.id;const t=this.actionDisplayName(e);try{const s=await e.exec(this.source,this.dirContents,this.currentDir);if(null==s)return;if(s)return void(0,c.Te)((0,u.Tl)("files",'"{displayName}" action executed successfully',{displayName:t}));(0,c.Qg)((0,u.Tl)("files",'"{displayName}" action failed',{displayName:t}))}catch(s){j.error("Error while executing action",{action:e,error:s}),(0,c.Qg)((0,u.Tl)("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loadingAction=null}}}}),bn=An;var yn=i(62886),Cn={};Cn.styleTagTransform=Le(),Cn.setAttributes=_e(),Cn.insert=Ce().bind(null,"head"),Cn.domAPI=be(),Cn.insertStyleElement=Te(),we()(yn.A,Cn),yn.A&&yn.A.locals&&yn.A.locals;var kn=(0,ae.A)(bn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppContent",{attrs:{"page-heading":e.pageHeading,"data-cy-files-content":""}},[t("div",{staticClass:"files-list__header",class:{"files-list__header--public":e.isPublic}},[t("BreadCrumbs",{attrs:{path:e.directory},on:{reload:e.fetchContent},scopedSlots:e._u([{key:"actions",fn:function(){return[e.canShare&&e.fileListWidth>=512?t("NcButton",{staticClass:"files-list__header-share-button",class:{"files-list__header-share-button--shared":e.shareButtonType},attrs:{"aria-label":e.shareButtonLabel,title:e.shareButtonLabel,type:"tertiary"},on:{click:e.openSharingSidebar},scopedSlots:e._u([{key:"icon",fn:function(){return[e.shareButtonType===e.ShareType.Link?t("LinkIcon"):t("AccountPlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4106306959)}):e._e(),e._v(" "),e.canUpload&&!e.isQuotaExceeded&&e.currentFolder?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):e._e()]},proxy:!0}])}),e._v(" "),e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):e._e(),e._v(" "),t("NcActions",{staticClass:"files-list__header-actions",attrs:{inline:1,type:"tertiary","force-name":""}},e._l(e.enabledFileListActions,(function(s){return t("NcActionButton",{key:s.id,attrs:{disabled:!!e.loadingAction,"data-cy-files-list-action":s.id,"close-after-click":""},on:{click:function(t){return e.execFileListAction(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingAction===s.id?t("NcLoadingIcon",{attrs:{size:18}}):void 0!==s.iconSvgInline&&e.currentView?t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.currentView)}}):e._e()]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])})),1),e._v(" "),e.fileListWidth>=512&&e.enableGridView?t("NcButton",{staticClass:"files-list__header-grid-button",attrs:{"aria-label":e.gridViewButtonLabel,title:e.gridViewButtonLabel,type:"tertiary"},on:{click:e.toggleGridView},scopedSlots:e._u([{key:"icon",fn:function(){return[e.userConfig.grid_view?t("ListViewIcon"):t("ViewGridIcon")]},proxy:!0}],null,!1,1682960703)}):e._e()],1),e._v(" "),!e.loading&&e.canUpload&&e.currentFolder?t("DragAndDropNotice",{attrs:{"current-folder":e.currentFolder}}):e._e(),e._v(" "),e.loading&&!e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,name:e.t("files","Loading current folder")}}):!e.loading&&e.isEmptyDir&&e.currentFolder&&e.currentView?[t("div",{staticClass:"files-list__before"},e._l(e.headers,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})})),1),e._v(" "),e.error?t("NcEmptyContent",{attrs:{name:e.error,"data-cy-files-content-error":""},scopedSlots:e._u([{key:"action",fn:function(){return[t("NcButton",{attrs:{type:"secondary"},on:{click:e.fetchContent},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconReload",{attrs:{size:20}})]},proxy:!0}],null,!1,3448385010)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Retry"))+"\n\t\t\t\t")])]},proxy:!0},{key:"icon",fn:function(){return[t("IconAlertCircleOutline")]},proxy:!0}],null,!1,2673163798)}):e.currentView?.emptyView?t("div",{staticClass:"files-list__empty-view-wrapper"},[t("div",{ref:"customEmptyView"})]):t("NcEmptyContent",{attrs:{name:e.currentView?.emptyTitle||e.t("files","No files in here"),description:e.currentView?.emptyCaption||e.t("files","Upload some content or sync with your devices!"),"data-cy-files-content-empty":""},scopedSlots:e._u(["/"!==e.directory?{key:"action",fn:function(){return[e.canUpload&&!e.isQuotaExceeded?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):t("NcButton",{attrs:{to:e.toPreviousDir,type:"primary"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Go back"))+"\n\t\t\t\t")])]},proxy:!0}:null,{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:e.currentView.icon}})]},proxy:!0}],null,!0)})]:t("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,nodes:e.dirContentsSorted,summary:e.summary}})],2)}),[],!1,null,"0ca874fa",null);const _n=kn.exports,xn=(0,o.pM)({name:"FilesApp",components:{NcContent:ie.A,FilesList:_n,Navigation:nt},setup:()=>({isPublic:(0,$.f)()})}),Tn=(0,ae.A)(xn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcContent",{attrs:{"app-name":"files"}},[e.isPublic?e._e():t("Navigation"),e._v(" "),t("FilesList",{attrs:{"is-public":e.isPublic}})],1)}),[],!1,null,null,null).exports;var Sn=i(82490),Ln=i(40173);o.Ay.use(Ln.Ay);const Nn=Ln.Ay.prototype.push;Ln.Ay.prototype.push=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Nn.call(this,...t):Nn.call(this,t[0]).catch(Un)};const Fn=Ln.Ay.prototype.replace;function Un(e){if(!(0,Ln.Pq)(e,Ln.$c.duplicated))throw e;j.debug("Ignoring duplicated navigation from vue-router",{error:e})}Ln.Ay.prototype.replace=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Fn.call(this,...t):Fn.call(this,t[0]).catch(Un)};const En=new Ln.Ay({mode:"history",base:(0,T.Jv)("/apps/files"),linkActiveClass:"active",routes:[{path:"/",redirect:{name:"filelist",params:{view:"files"}}},{path:"/:view/:fileid(\\d+)?",name:"filelist",props:!0}],stringifyQuery(e){const t=Sn.A.stringify(e).replace(/%2F/gim,"/");return t?"?"+t:""}});En.beforeEach(((e,t,s)=>{if(e.params?.parentIntercept)return delete e.params.parentIntercept,void s();const i=t.query?.dir||"/",n=e.query?.dir||"/";if(".."===(0,d.relative)(i,n)){const{currentView:t}=He(),{getNode:a}=Pt(),{getPath:o}=It();if(!t.value?.id)return j.error("No current view id found, cannot navigate to parent directory",{fromDir:i,toDir:n}),s();const r=o(t.value?.id,i);if(!r)return j.error("No source found for the parent directory",{fromDir:i,toDir:n}),s();const l=a(r)?.fileid;if(!l)return j.error("No fileid found for the parent directory",{fromDir:i,toDir:n,fromSource:r}),s();j.debug("Navigating back to parent directory",{fromDir:i,toDir:n,fileId:l}),s({name:"filelist",query:e.query,params:{...e.params,fileid:String(l),parentIntercept:"true"},replace:!0})}s()}));const In=En;class Pn{constructor(e){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"router",void 0),this.router=e}get name(){return this.router.currentRoute.name}get query(){return this.router.currentRoute.query||{}}get params(){return this.router.currentRoute.params||{}}get _router(){return this.router}goTo(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.router.push({path:e,replace:t})}goToRoute(e,t,s,i){return this.router.push({name:e,query:s,params:t,replace:i})}}function zn(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}if(i.nc=(0,n.aV)(),window.OCA.Files=window.OCA.Files??{},window.OCP.Files=window.OCP.Files??{},!window.OCP.Files.Router){const e=new Pn(In);Object.assign(window.OCP.Files,{Router:e})}o.Ay.use(a.R2),(0,l.C)("d",(()=>te(Z)),{stop:!0,prevent:!0}),(0,l.C)("F2",(()=>te(J)),{stop:!0,prevent:!0}),(0,l.C)("s",(()=>te(K)),{stop:!0,prevent:!0}),(0,l.C)("Delete",(()=>te(V)),{stop:!0,prevent:!0}),(0,l.C)("ArrowUp",(function(){const e=window.OCP.Files.Router?.params||{},t=window.OCP.Files.Router?.query||{},s=t?.dir||"/",i=(0,d.dirname)(s);j.debug("Navigating to parent directory",{parentDir:i}),window.OCP.Files.Router.goToRoute(null,{...e},{...t,dir:i})}),{stop:!0,prevent:!0,alt:!0}),(0,l.C)("v",(function(){const e=(0,se.O)(),t=e?.userConfig?.grid_view;j.debug("Toggling grid view",{old:t,new:!t}),e.update("grid_view",!t)}),{stop:!0,prevent:!0}),j.debug("Hotkeys registered");const Bn=new class{constructor(){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"_settings",void 0),this._settings=[],console.debug("OCA.Files.Settings initialized")}register(e){return this._settings.filter((t=>t.name===e.name)).length>0?(console.error("A setting with the same name is already registered"),!1):(this._settings.push(e),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Bn}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(e,t){let{el:s,open:i,close:n}=t;zn(this,"_close",void 0),zn(this,"_el",void 0),zn(this,"_name",void 0),zn(this,"_open",void 0),this._name=e,this._el=s,this._open=i,this._close=n,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(o.Ay.extend(Tn))({router:window.OCP.Files.Router._router,pinia:r()}).$mount("#content")},11820:(e,t,s)=>{s.d(t,{A:()=>i.N});var i=s(81199)},18789:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"tr[data-v-e916ded0]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-e916ded0]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableFooter.vue"],names:[],mappings:"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tmargin-bottom: var(--body-container-margin);\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n\n\ttd {\n\t\tuser-select: none;\n\t\t// Make sure the cell colors don't apply to column headers\n\t\tcolor: var(--color-text-maxcontrast) !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},19372:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__row-action[data-v-7f0265e5]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-7f0265e5]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-7f0265e5] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA",sourcesContent:["\n.files-list__row-action {\n\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\n\t// inline icons can have clickable area size so they still fit into the row\n\t&.files-list__row-action--inline {\n\t\t--max-icon-size: var(--default-clickable-area);\n\t}\n\n\t// Some icons exceed the default size so we need to enforce a max width and height\n\t.files-list__row-action-icon :deep(svg) {\n\t\tmax-height: var(--max-icon-size) !important;\n\t\tmax-width: var(--max-icon-size) !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},20040:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA",sourcesContent:['\n// Allow right click to define the position of the menu\n// only if defined\nmain.app-content[style*="mouse-pos-x"] .v-popper__popper {\n\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\n\n\t// If the menu is too close to the bottom, we move it up\n\t&[data-popper-placement="top"] {\n\t\t// 34px added to align with the top of the cursor\n\t\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\n\t}\n\t// Hide arrow if floating\n\t.v-popper__arrow-container {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const r=o},20768:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropPreview.vue"],names:[],mappings:"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n$size: 32px;\n$stack-shift: 6px;\n\n.files-list-drag-image {\n\tposition: absolute;\n\ttop: -9999px;\n\tinset-inline-start: -9999px;\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-items: center;\n\theight: 44px;\n\tpadding: 6px 12px;\n\tbackground: var(--color-main-background);\n\n\t&__icon,\n\t.files-list__row-icon {\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tborder-radius: var(--border-radius);\n\t}\n\n\t&__icon {\n\t\toverflow: visible;\n\t\tmargin-inline-end: 12px;\n\n\t\timg {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t}\n\n\t\t.material-design-icon {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t&.folder-icon {\n\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Previews container\n\t\t> span {\n\t\t\tdisplay: flex;\n\n\t\t\t// Stack effect if more than one element\n\t\t\t.files-list__row-icon + .files-list__row-icon {\n\t\t\t\tmargin-top: $stack-shift;\n\t\t\t\tmargin-inline-start: $stack-shift - $size;\n\t\t\t\t& + .files-list__row-icon {\n\t\t\t\t\tmargin-top: $stack-shift * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we have manually clone the preview,\n\t\t\t// let's hide any fallback icons\n\t\t\t&:not(:empty) + * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},24146:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,"button.files-list__row-name-link[data-v-08f77d70]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-08f77d70]:active{background-color:unset !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryName.vue"],names:[],mappings:"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA",sourcesContent:["\nbutton.files-list__row-name-link {\n\tbackground-color: unset;\n\tborder: none;\n\tfont-weight: normal;\n\n\t&:active {\n\t\t// No active styles - handled by the row entry\n\t\tbackground-color: unset !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},28665:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".file-list-filters[data-v-3d6bff7e]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-3d6bff7e]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-3d6bff7e]{flex:0 1 fit-content}.file-list-filters__active[data-v-3d6bff7e]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FileListFilters.vue"],names:[],mappings:"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA",sourcesContent:["\n.file-list-filters {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n\n\t&__filter {\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tjustify-content: start;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\n\t\t> * {\n\t\t\tflex: 0 1 fit-content;\n\t\t}\n\t}\n\n\t&__active {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\t}\n}\n"],sourceRoot:""}]);const r=o},31643:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__breadcrumbs[data-v-7b525302]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-7b525302] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-7b525302]{flex-direction:column !important;align-items:flex-start !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA",sourcesContent:["\n.files-list__breadcrumbs {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\theight: 100%;\n\tmargin-block: 0;\n\tmargin-inline: 10px;\n\tmin-width: 0;\n\n\t:deep() {\n\t\ta {\n\t\t\tcursor: pointer !important;\n\t\t}\n\t}\n\n\t&--with-progress {\n\t\tflex-direction: column !important;\n\t\talign-items: flex-start !important;\n\t}\n}\n"],sourceRoot:""}]);const r=o},35613:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__column-sort-button[data-v-c3dbd7e0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-c3dbd7e0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-c3dbd7e0]{opacity:1}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderButton.vue"],names:[],mappings:"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\n\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\n\n\t&-text {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t}\n\n\t&-icon {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\topacity: 0;\n\t\ttransition: opacity var(--animation-quick);\n\t\tinset-inline-start: -10px;\n\t}\n\n\t&--size &-icon {\n\t\tinset-inline-start: 10px;\n\t}\n\n\t&--active &-icon,\n\t&:hover &-icon,\n\t&:focus &-icon,\n\t&:active &-icon {\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const r=o},35810:(e,t,s)=>{s.d(t,{Al:()=>i.r,By:()=>p,CP:()=>i.k,Dw:()=>je,E6:()=>A,H4:()=>i.c,KT:()=>w,L3:()=>Re,PY:()=>i.b,Q$:()=>i.e,R3:()=>i.n,Ss:()=>de,VL:()=>i.l,VP:()=>S,VX:()=>i.j,ZH:()=>i.q,a7:()=>d,aX:()=>i.P,bP:()=>i.N,bh:()=>T,cZ:()=>Oe,di:()=>v,g5:()=>f,hY:()=>g,lJ:()=>i.d,m1:()=>Ve,m9:()=>m,nF:()=>h,pt:()=>i.F,qK:()=>u,sR:()=>Me,ur:()=>_,v7:()=>C,vd:()=>i.s,zI:()=>i.t});var i=s(68251),n=s(87485),a=s(43627),o=s(53334),r=s(380),l=s(65606),d=(e=>(e[e.UploadFromDevice=0]="UploadFromDevice",e[e.CreateNew=1]="CreateNew",e[e.Other=2]="Other",e))(d||{});class c{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):i.o.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}var m=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(m||{});class g{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get destructive(){return this._action.destructive}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if(void 0!==e.destructive&&"boolean"!=typeof e.destructive)throw new Error("Invalid destructive flag");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(m).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const u=function(){return void 0===window._nc_fileactions&&(window._nc_fileactions=[],i.o.debug("FileActions initialized")),window._nc_fileactions},f=()=>(void 0===window._nc_filelistactions&&(window._nc_filelistactions=[]),window._nc_filelistactions),p=function(){return void 0===window._nc_filelistheader&&(window._nc_filelistheader=[],i.o.debug("FileListHeaders initialized")),window._nc_filelistheader};var h=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(h||{});class v extends Error{constructor(e){super(`Invalid ${e.reason} '${e.segment}' in filename '${e.filename}'`,{cause:e})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function w(e){const t=(0,n.F)().files,s=t.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const t of s)if(e.includes(t))throw new v({segment:t,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(t.forbidden_filenames??[".htaccess"]).includes(e))throw new v({filename:e,segment:e,reason:"reserved name"});const i=e.indexOf(".",1),a=e.substring(0,-1===i?void 0:i);if((t.forbidden_filename_basenames??[]).includes(a))throw new v({filename:e,segment:a,reason:"reserved name"});const o=t.forbidden_filename_extensions??[".part",".filepart"];for(const t of o)if(e.length>t.length&&e.endsWith(t))throw new v({segment:t,reason:"extension",filename:e})}function A(e,t,s){const i={suffix:e=>`(${e})`,ignoreFileExtension:!1,...s};let n=e,o=1;for(;t.includes(n);){const t=i.ignoreFileExtension?"":(0,a.extname)(e);n=`${(0,a.basename)(e,t)} ${i.suffix(o++)}${t}`}return n}const b=["B","KB","MB","GB","TB","PB"],y=["B","KiB","MiB","GiB","TiB","PiB"];function C(e,t=!1,s=!1,i=!1){s=s&&!i,"string"==typeof e&&(e=Number(e));let n=e>0?Math.floor(Math.log(e)/Math.log(i?1e3:1024)):0;n=Math.min((s?y.length:b.length)-1,n);const a=s?y[n]:b[n];let r=(e/Math.pow(i?1e3:1024,n)).toFixed(1);return!0===t&&0===n?("0.0"!==r?"< 1 ":"0 ")+(s?y[1]:b[1]):(r=n<2?parseFloat(r).toFixed(0):parseFloat(r).toLocaleString((0,o.lO)()),r+" "+a)}function k(e){return e instanceof Date?e.toISOString():String(e)}function _(e,t={}){const s={sortingMode:"basename",sortingOrder:"asc",...t};return function(e,t,s){s=s??[];const i=(t=t??[e=>e]).map(((e,t)=>"asc"===(s[t]??"asc")?1:-1)),n=Intl.Collator([(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"});return[...e].sort(((e,s)=>{for(const[a,o]of t.entries()){const t=n.compare(k(o(e)),k(o(s)));if(0!==t)return t*i[a]}return 0}))}(e,[...s.sortFavoritesFirst?[e=>1!==e.attributes?.favorite]:[],...s.sortFoldersFirst?[e=>"folder"!==e.type]:[],..."basename"!==s.sortingMode?[e=>e[s.sortingMode]]:[],e=>{return(t=e.displayname||e.attributes?.displayname||e.basename).lastIndexOf(".")>0?t.slice(0,t.lastIndexOf(".")):t;var t},e=>e.basename],[...s.sortFavoritesFirst?["asc"]:[],...s.sortFoldersFirst?["asc"]:[],..."mtime"===s.sortingMode?["asc"===s.sortingOrder?"desc":"asc"]:[],..."mtime"!==s.sortingMode&&"basename"!==s.sortingMode?[s.sortingOrder]:[],s.sortingOrder,s.sortingOrder])}class x extends r.m{_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e),this.dispatchTypedEvent("update",new CustomEvent("update"))}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&(this._views.splice(t,1),this.dispatchTypedEvent("update",new CustomEvent("update")))}setActive(e){this._currentView=e;const t=new CustomEvent("updateActive",{detail:e});this.dispatchTypedEvent("updateActive",t)}get active(){return this._currentView}get views(){return this._views}}const T=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new x,i.o.debug("Navigation service initialized")),window._nc_navigation};class S{_column;constructor(e){L(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const L=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};function N(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,U,E={},I={};function P(){return F||(F=1,function(e){const t=":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",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",i=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const i=Object.keys(t),n=i.length;for(let a=0;a<n;a++)e[i[a]]="strict"===s?[t[i[a]]]:t[i[a]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==i.exec(e))},e.getAllMatches=function(e,t){const s=[];let i=t.exec(e);for(;i;){const n=[];n.startIndex=t.lastIndex-i[0].length;const a=i.length;for(let e=0;e<a;e++)n.push(i[e]);s.push(n),i=t.exec(e)}return s},e.nameRegexp=s}(I)),I}function z(){if(U)return E;U=1;const e=P(),t={allowBooleanAttributes:!1,unpairedTags:[]};function s(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function i(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const i=e.substr(s,t-s);if(t>5&&"xml"===i)return m("InvalidXml","XML declaration allowed only at the start of the document.",u(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function n(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}E.validate=function(a,o){o=Object.assign({},t,o);const l=[];let g=!1,f=!1;"\ufeff"===a[0]&&(a=a.substr(1));for(let t=0;t<a.length;t++)if("<"===a[t]&&"?"===a[t+1]){if(t+=2,t=i(a,t),t.err)return t}else{if("<"!==a[t]){if(s(a[t]))continue;return m("InvalidChar","char '"+a[t]+"' is not expected.",u(a,t))}{let h=t;if(t++,"!"===a[t]){t=n(a,t);continue}{let v=!1;"/"===a[t]&&(v=!0,t++);let w="";for(;t<a.length&&">"!==a[t]&&" "!==a[t]&&"\t"!==a[t]&&"\n"!==a[t]&&"\r"!==a[t];t++)w+=a[t];if(w=w.trim(),"/"===w[w.length-1]&&(w=w.substring(0,w.length-1),t--),p=w,!e.isName(p)){let e;return e=0===w.trim().length?"Invalid space after '<'.":"Tag '"+w+"' is an invalid name.",m("InvalidTag",e,u(a,t))}const A=r(a,t);if(!1===A)return m("InvalidAttr","Attributes for '"+w+"' have open quote.",u(a,t));let b=A.value;if(t=A.index,"/"===b[b.length-1]){const e=t-b.length;b=b.substring(0,b.length-1);const s=d(b,o);if(!0!==s)return m(s.err.code,s.err.msg,u(a,e+s.err.line));g=!0}else if(v){if(!A.tagClosed)return m("InvalidTag","Closing tag '"+w+"' doesn't have proper closing.",u(a,t));if(b.trim().length>0)return m("InvalidTag","Closing tag '"+w+"' can't have attributes or invalid starting.",u(a,h));if(0===l.length)return m("InvalidTag","Closing tag '"+w+"' has not been opened.",u(a,h));{const e=l.pop();if(w!==e.tagName){let t=u(a,e.tagStartPos);return m("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+t.line+", col "+t.col+") instead of closing tag '"+w+"'.",u(a,h))}0==l.length&&(f=!0)}}else{const e=d(b,o);if(!0!==e)return m(e.err.code,e.err.msg,u(a,t-b.length+e.err.line));if(!0===f)return m("InvalidXml","Multiple possible root nodes found.",u(a,t));-1!==o.unpairedTags.indexOf(w)||l.push({tagName:w,tagStartPos:h}),g=!0}for(t++;t<a.length;t++)if("<"===a[t]){if("!"===a[t+1]){t++,t=n(a,t);continue}if("?"!==a[t+1])break;if(t=i(a,++t),t.err)return t}else if("&"===a[t]){const e=c(a,t);if(-1==e)return m("InvalidChar","char '&' is not expected.",u(a,t));t=e}else if(!0===f&&!s(a[t]))return m("InvalidXml","Extra text at the end",u(a,t));"<"===a[t]&&t--}}}var p;return g?1==l.length?m("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",u(a,l[0].tagStartPos)):!(l.length>0)||m("InvalidXml","Invalid '"+JSON.stringify(l.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):m("InvalidXml","Start tag expected.",1)};const a='"',o="'";function r(e,t){let s="",i="",n=!1;for(;t<e.length;t++){if(e[t]===a||e[t]===o)""===i?i=e[t]:i!==e[t]||(i="");else if(">"===e[t]&&""===i){n=!0;break}s+=e[t]}return""===i&&{value:s,index:t,tagClosed:n}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,s){const i=e.getAllMatches(t,l),n={};for(let e=0;e<i.length;e++){if(0===i[e][1].length)return m("InvalidAttr","Attribute '"+i[e][2]+"' has no space in starting.",f(i[e]));if(void 0!==i[e][3]&&void 0===i[e][4])return m("InvalidAttr","Attribute '"+i[e][2]+"' is without value.",f(i[e]));if(void 0===i[e][3]&&!s.allowBooleanAttributes)return m("InvalidAttr","boolean attribute '"+i[e][2]+"' is not allowed.",f(i[e]));const t=i[e][2];if(!g(t))return m("InvalidAttr","Attribute '"+t+"' is an invalid name.",f(i[e]));if(n.hasOwnProperty(t))return m("InvalidAttr","Attribute '"+t+"' is repeated.",f(i[e]));n[t]=1}return!0}function c(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function m(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function g(t){return e.isName(t)}function u(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function f(e){return e.startIndex+e[1].length}return E}var B,D,R,O,j,M,V,$,W,H,q,Y={};function G(){return W?$:(W=1,$=function(e){return"function"==typeof e?e:Array.isArray(e)?t=>{for(const s of e){if("string"==typeof s&&t===s)return!0;if(s instanceof RegExp&&s.test(t))return!0}}:()=>!1})}var K,Q,J,X,Z,ee,te,se,ie,ne={};function ae(){if(K)return ne;function e(n,a,o){let r;const l={};for(let d=0;d<n.length;d++){const c=n[d],m=t(c);let g="";if(g=void 0===o?m:o+"."+m,m===a.textNodeName)void 0===r?r=c[m]:r+=""+c[m];else{if(void 0===m)continue;if(c[m]){let t=e(c[m],a,g);const n=i(t,a);c[":@"]?s(t,c[":@"],g,a):1!==Object.keys(t).length||void 0===t[a.textNodeName]||a.alwaysCreateTextNode?0===Object.keys(t).length&&(a.alwaysCreateTextNode?t[a.textNodeName]="":t=""):t=t[a.textNodeName],void 0!==l[m]&&l.hasOwnProperty(m)?(Array.isArray(l[m])||(l[m]=[l[m]]),l[m].push(t)):a.isArray(m,g,n)?l[m]=[t]:l[m]=t}}}return"string"==typeof r?r.length>0&&(l[a.textNodeName]=r):void 0!==r&&(l[a.textNodeName]=r),l}function t(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function s(e,t,s,i){if(t){const n=Object.keys(t),a=n.length;for(let o=0;o<a;o++){const a=n[o];i.isArray(a,s+"."+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function i(e,t){const{textNodeName:s}=t,i=Object.keys(e).length;return 0===i||!(1!==i||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}return K=1,ne.prettify=function(t,s){return e(t,s)},ne}function oe(){if(J)return Q;J=1;const{buildOptions:e}=function(){if(B)return Y;B=1;const e={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(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};return Y.buildOptions=function(t){return Object.assign({},e,t)},Y.defaultOptions=e,Y}(),t=function(){if(q)return H;q=1;const e=P(),t=R?D:(R=1,D=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}}),s=function(){if(j)return O;j=1;const e=P();function t(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const i=e[t++];let n="";for(;t<e.length&&e[t]!==i;t++)n+=e[t];return[s,n,t]}function s(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function i(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function n(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function a(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function o(t){if(e.isName(t))return t;throw new Error(`Invalid entity name ${t}`)}return O=function(e,r){const l={};if("O"!==e[r+3]||"C"!==e[r+4]||"T"!==e[r+5]||"Y"!==e[r+6]||"P"!==e[r+7]||"E"!==e[r+8])throw new Error("Invalid Tag instead of DOCTYPE");{r+=9;let d=1,c=!1,m=!1,g="";for(;r<e.length;r++)if("<"!==e[r]||m)if(">"===e[r]){if(m?"-"===e[r-1]&&"-"===e[r-2]&&(m=!1,d--):d--,0===d)break}else"["===e[r]?c=!0:g+=e[r];else{if(c&&s(e,r)){let s,i;r+=7,[s,i,r]=t(e,r+1),-1===i.indexOf("&")&&(l[o(s)]={regx:RegExp(`&${s};`,"g"),val:i})}else c&&i(e,r)||c&&n(e,r)?r+=8:c&&a(e,r)?r+=9:m=!0;d++,g=""}if(0!==d)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:r}}}(),i=function(){if(V)return M;V=1;const e=/^[-+]?0x[a-fA-F0-9]+$/,t=/^([\-\+])?(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 s={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return M=function(i,n={}){if(n=Object.assign({},s,n),!i||"string"!=typeof i)return i;let a=i.trim();if(void 0!==n.skipLike&&n.skipLike.test(a))return i;if(n.hex&&e.test(a))return Number.parseInt(a,16);{const e=t.exec(a);if(e){const t=e[1],s=e[2];let r=(o=e[3])&&-1!==o.indexOf(".")?("."===(o=o.replace(/0+$/,""))?o="0":"."===o[0]?o="0"+o:"."===o[o.length-1]&&(o=o.substr(0,o.length-1)),o):o;const l=e[4]||e[6];if(!n.leadingZeros&&s.length>0&&t&&"."!==a[2])return i;if(!n.leadingZeros&&s.length>0&&!t&&"."!==a[1])return i;{const e=Number(a),o=""+e;return-1!==o.search(/[eE]/)||l?n.eNotation?e:i:-1!==a.indexOf(".")?"0"===o&&""===r||o===r||t&&o==="-"+r?e:i:s?r===o||t+r===o?e:i:a===o||a===t+o?e:i}}return i}var o}}(),n=G();function a(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const i=t[s];this.lastEntities[i]={regex:new RegExp("&"+i+";","g"),val:e[i]}}}function o(e,t,s,i,n,a,o){if(void 0!==e&&(this.options.trimValues&&!i&&(e=e.trim()),e.length>0)){o||(e=this.replaceEntitiesValue(e));const i=this.options.tagValueProcessor(t,e,s,n,a);return null==i?e:typeof i!=typeof e||i!==e?i:this.options.trimValues||e.trim()===e?w(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function r(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function d(t,s,i){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const i=e.getAllMatches(t,l),n=i.length,a={};for(let e=0;e<n;e++){const t=this.resolveNameSpace(i[e][1]);if(this.ignoreAttributesFn(t,s))continue;let n=i[e][4],o=this.options.attributeNamePrefix+t;if(t.length)if(this.options.transformAttributeName&&(o=this.options.transformAttributeName(o)),"__proto__"===o&&(o="#__proto__"),void 0!==n){this.options.trimValues&&(n=n.trim()),n=this.replaceEntitiesValue(n);const e=this.options.attributeValueProcessor(t,n,s);a[o]=null==e?n:typeof e!=typeof n||e!==n?e:w(n,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[o]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const c=function(e){e=e.replace(/\r\n?/g,"\n");const i=new t("!xml");let n=i,a="",o="";for(let r=0;r<e.length;r++)if("<"===e[r])if("/"===e[r+1]){const t=p(e,">",r,"Closing Tag is not closed.");let s=e.substring(r+2,t).trim();if(this.options.removeNSPrefix){const e=s.indexOf(":");-1!==e&&(s=s.substr(e+1))}this.options.transformTagName&&(s=this.options.transformTagName(s)),n&&(a=this.saveTextToParentTag(a,n,o));const i=o.substring(o.lastIndexOf(".")+1);if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: </${s}>`);let l=0;i&&-1!==this.options.unpairedTags.indexOf(i)?(l=o.lastIndexOf(".",o.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=o.lastIndexOf("."),o=o.substring(0,l),n=this.tagsNodeStack.pop(),a="",r=t}else if("?"===e[r+1]){let s=h(e,r,!1,"?>");if(!s)throw new Error("Pi Tag is not closed.");if(a=this.saveTextToParentTag(a,n,o),this.options.ignoreDeclaration&&"?xml"===s.tagName||this.options.ignorePiTags);else{const e=new t(s.tagName);e.add(this.options.textNodeName,""),s.tagName!==s.tagExp&&s.attrExpPresent&&(e[":@"]=this.buildAttributesMap(s.tagExp,o,s.tagName)),this.addChild(n,e,o)}r=s.closeIndex+1}else if("!--"===e.substr(r+1,3)){const t=p(e,"--\x3e",r+4,"Comment is not closed.");if(this.options.commentPropName){const s=e.substring(r+4,t-2);a=this.saveTextToParentTag(a,n,o),n.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=t}else if("!D"===e.substr(r+1,2)){const t=s(e,r);this.docTypeEntities=t.entities,r=t.i}else if("!["===e.substr(r+1,2)){const t=p(e,"]]>",r,"CDATA is not closed.")-2,s=e.substring(r+9,t);a=this.saveTextToParentTag(a,n,o);let i=this.parseTextData(s,n.tagname,o,!0,!1,!0,!0);null==i&&(i=""),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):n.add(this.options.textNodeName,i),r=t+2}else{let s=h(e,r,this.options.removeNSPrefix),l=s.tagName;const d=s.rawTagName;let c=s.tagExp,m=s.attrExpPresent,g=s.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),n&&a&&"!xml"!==n.tagname&&(a=this.saveTextToParentTag(a,n,o,!1));const u=n;if(u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(n=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),l!==i.tagname&&(o+=o?"."+l:l),this.isItStopNode(this.options.stopNodes,o,l)){let i="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),c=l):c=c.substr(0,c.length-1),r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))r=s.closeIndex;else{const t=this.readStopNodeData(e,d,g+1);if(!t)throw new Error(`Unexpected end of ${d}`);r=t.i,i=t.tagContent}const a=new t(l);l!==c&&m&&(a[":@"]=this.buildAttributesMap(c,o,l)),i&&(i=this.parseTextData(i,l,o,!0,m,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),a.add(this.options.textNodeName,i),this.addChild(n,a,o)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),c=l):c=c.substr(0,c.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const e=new t(l);l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,o,l)),this.addChild(n,e,o),o=o.substr(0,o.lastIndexOf("."))}else{const e=new t(l);this.tagsNodeStack.push(n),l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,o,l)),this.addChild(n,e,o),n=e}a="",r=g}}else a+=e[r];return i.child};function m(e,t,s){const i=this.options.updateTag(t.tagname,s,t[":@"]);!1===i||("string"==typeof i?(t.tagname=i,e.addChild(t)):e.addChild(t))}const g=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function u(e,t,s,i){return e&&(void 0===i&&(i=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,i))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function f(e,t,s){const i="*."+s;for(const s in e){const n=e[s];if(i===n||t===n)return!0}return!1}function p(e,t,s,i){const n=e.indexOf(t,s);if(-1===n)throw new Error(i);return n+t.length-1}function h(e,t,s,i=">"){const n=function(e,t,s=">"){let i,n="";for(let a=t;a<e.length;a++){let t=e[a];if(i)t===i&&(i="");else if('"'===t||"'"===t)i=t;else if(t===s[0]){if(!s[1])return{data:n,index:a};if(e[a+1]===s[1])return{data:n,index:a}}else"\t"===t&&(t=" ");n+=t}}(e,t+1,i);if(!n)return;let a=n.data;const o=n.index,r=a.search(/\s/);let l=a,d=!0;-1!==r&&(l=a.substring(0,r),a=a.substring(r+1).trimStart());const c=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==n.data.substr(e+1))}return{tagName:l,tagExp:a,closeIndex:o,attrExpPresent:d,rawTagName:c}}function v(e,t,s){const i=s;let n=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const a=p(e,">",s,`${t} is not closed`);if(e.substring(s+2,a).trim()===t&&(n--,0===n))return{tagContent:e.substring(i,s),i:a};s=a}else if("?"===e[s+1])s=p(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=p(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=p(e,"]]>",s,"StopNode is not closed.")-2;else{const i=h(e,s,">");i&&((i&&i.tagName)===t&&"/"!==i.tagExp[i.tagExp.length-1]&&n++,s=i.closeIndex)}}function w(t,s,n){if(s&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&i(t,n)}return e.isExist(t)?t:""}return H=class{constructor(e){this.options=e,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:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=a,this.parseXml=c,this.parseTextData=o,this.resolveNameSpace=r,this.buildAttributesMap=d,this.isItStopNode=f,this.replaceEntitiesValue=g,this.readStopNodeData=v,this.saveTextToParentTag=u,this.addChild=m,this.ignoreAttributesFn=n(this.options.ignoreAttributes)}}}(),{prettify:s}=ae(),i=z();return Q=class{constructor(t){this.externalEntities={},this.options=e(t)}parse(e,n){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(n){!0===n&&(n={});const t=i.validate(e,n);if(!0!==t)throw Error(`${t.err.msg}:${t.err.line}:${t.err.col}`)}const a=new t(this.options);a.addExternalEntities(this.externalEntities);const o=a.parseXml(e);return this.options.preserveOrder||void 0===o?o:s(o,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}}function re(){if(Z)return X;function e(a,o,r,l){let d="",c=!1;for(let m=0;m<a.length;m++){const g=a[m],u=t(g);if(void 0===u)continue;let f="";if(f=0===r.length?u:`${r}.${u}`,u===o.textNodeName){let e=g[u];i(f,o)||(e=o.tagValueProcessor(u,e),e=n(e,o)),c&&(d+=l),d+=e,c=!1;continue}if(u===o.cdataPropName){c&&(d+=l),d+=`<![CDATA[${g[u][0][o.textNodeName]}]]>`,c=!1;continue}if(u===o.commentPropName){d+=l+`\x3c!--${g[u][0][o.textNodeName]}--\x3e`,c=!0;continue}if("?"===u[0]){const e=s(g[":@"],o),t="?xml"===u?"":l;let i=g[u][0][o.textNodeName];i=0!==i.length?" "+i:"",d+=t+`<${u}${i}${e}?>`,c=!0;continue}let p=l;""!==p&&(p+=o.indentBy);const h=l+`<${u}${s(g[":@"],o)}`,v=e(g[u],o,f,p);-1!==o.unpairedTags.indexOf(u)?o.suppressUnpairedNode?d+=h+">":d+=h+"/>":v&&0!==v.length||!o.suppressEmptyNode?v&&v.endsWith(">")?d+=h+`>${v}${l}</${u}>`:(d+=h+">",v&&""!==l&&(v.includes("/>")||v.includes("</"))?d+=l+o.indentBy+v+l:d+=v,d+=`</${u}>`):d+=h+"/>",c=!0}return d}function t(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const i=t[s];if(e.hasOwnProperty(i)&&":@"!==i)return i}}function s(e,t){let s="";if(e&&!t.ignoreAttributes)for(let i in e){if(!e.hasOwnProperty(i))continue;let a=t.attributeValueProcessor(i,e[i]);a=n(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${i.substr(t.attributeNamePrefix.length)}`:s+=` ${i.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function i(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let i in t.stopNodes)if(t.stopNodes[i]===e||t.stopNodes[i]==="*."+s)return!0;return!1}function n(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const i=t.entities[s];e=e.replace(i.regex,i.val)}return e}return Z=1,X=function(t,s){let i="";return s.format&&s.indentBy.length>0&&(i="\n"),e(t,s,"",i)}}var le=function(){if(ie)return se;ie=1;const e=z(),t=oe(),s=function(){if(te)return ee;te=1;const e=re(),t=G(),s={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},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 i(e){this.options=Object.assign({},s,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=t(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=o),this.processTextOrObjNode=n,this.options.format?(this.indentate=a,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function n(e,t,s,i){const n=this.j2x(e,s+1,i.concat(t));return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,n.attrStr,s):this.buildObjectNode(n.val,t,n.attrStr,s)}function a(e){return this.options.indentBy.repeat(e)}function o(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}return i.prototype.build=function(t){return this.options.preserveOrder?e(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},i.prototype.j2x=function(e,t,s){let i="",n="";const a=s.join(".");for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(void 0===e[o])this.isAttribute(o)&&(n+="");else if(null===e[o])this.isAttribute(o)?n+="":"?"===o[0]?n+=this.indentate(t)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+o+"/"+this.tagEndChar;else if(e[o]instanceof Date)n+=this.buildTextValNode(e[o],o,"",t);else if("object"!=typeof e[o]){const s=this.isAttribute(o);if(s&&!this.ignoreAttributesFn(s,a))i+=this.buildAttrPairStr(s,""+e[o]);else if(!s)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,""+e[o]);n+=this.replaceEntitiesValue(t)}else n+=this.buildTextValNode(e[o],o,"",t)}else if(Array.isArray(e[o])){const i=e[o].length;let a="",r="";for(let l=0;l<i;l++){const i=e[o][l];if(void 0===i);else if(null===i)"?"===o[0]?n+=this.indentate(t)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+o+"/"+this.tagEndChar;else if("object"==typeof i)if(this.options.oneListGroup){const e=this.j2x(i,t+1,s.concat(o));a+=e.val,this.options.attributesGroupName&&i.hasOwnProperty(this.options.attributesGroupName)&&(r+=e.attrStr)}else a+=this.processTextOrObjNode(i,o,t,s);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,i);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(i,o,"",t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,r,t)),n+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){const t=Object.keys(e[o]),s=t.length;for(let n=0;n<s;n++)i+=this.buildAttrPairStr(t[n],""+e[o][t[n]])}else n+=this.processTextOrObjNode(e[o],o,t,s);return{attrStr:i,val:n}},i.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},i.prototype.buildObjectNode=function(e,t,s,i){if(""===e)return"?"===t[0]?this.indentate(i)+"<"+t+s+"?"+this.tagEndChar:this.indentate(i)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let n="</"+t+this.tagEndChar,a="";return"?"===t[0]&&(a="?",n=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===a.length?this.indentate(i)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(i)+"<"+t+s+a+this.tagEndChar+e+this.indentate(i)+n:this.indentate(i)+"<"+t+s+a+">"+e+n}},i.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},i.prototype.buildTextValNode=function(e,t,s,i){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(i)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(i)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(i)+"<"+t+s+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(t,e);return n=this.replaceEntitiesValue(n),""===n?this.indentate(i)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(i)+"<"+t+s+">"+n+"</"+t+this.tagEndChar}},i.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e},ee=i}();return se={XMLParser:t,XMLValidator:e,XMLBuilder:s}}();class de{_view;constructor(e){ce(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}get loadChildViews(){return this._view.loadChildViews}}const ce=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if("caption"in e&&"string"!=typeof e.caption)throw new Error("View caption must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==le.XMLValidator.validate(e))return!1;let t;const s=new le.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if("order"in e&&"number"!=typeof e.order)throw new Error("View order must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof S))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");if(e.loadChildViews&&"function"!=typeof e.loadChildViews)throw new Error("View loadChildViews must be a function");return!0};var me,ge,ue,fe;function pe(){if(ge)return me;ge=1;const e="object"==typeof l&&l.env&&l.env.NODE_DEBUG&&/\bsemver\b/i.test(l.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};return me=e}function he(){if(fe)return ue;fe=1;const e=Number.MAX_SAFE_INTEGER||9007199254740991;return ue={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:e,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}var ve,we,Ae,be,ye,Ce,ke,_e,xe,Te,Se,Le={exports:{}};function Ne(){if(ke)return Ce;ke=1;const e=pe(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:s}=he(),{safeRe:i,t:n}=(ve||(ve=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:n}=he(),a=pe(),o=(t=e.exports={}).re=[],r=t.safeRe=[],l=t.src=[],d=t.t={};let c=0;const m="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",n],[m,i]],u=(e,t,s)=>{const i=(e=>{for(const[t,s]of g)e=e.split(`${t}*`).join(`${t}{0,${s}}`).split(`${t}+`).join(`${t}{1,${s}}`);return e})(t),n=c++;a(e,n,t),d[e]=n,l[n]=t,o[n]=new RegExp(t,s?"g":void 0),r[n]=new RegExp(i,s?"g":void 0)};u("NUMERICIDENTIFIER","0|[1-9]\\d*"),u("NUMERICIDENTIFIERLOOSE","\\d+"),u("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),u("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),u("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),u("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),u("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),u("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),u("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),u("BUILDIDENTIFIER",`${m}+`),u("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),u("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),u("FULL",`^${l[d.FULLPLAIN]}$`),u("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),u("LOOSE",`^${l[d.LOOSEPLAIN]}$`),u("GTLT","((?:<|>)?=?)"),u("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),u("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),u("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),u("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),u("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),u("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),u("COERCEPLAIN",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?`),u("COERCE",`${l[d.COERCEPLAIN]}(?:$|[^\\d])`),u("COERCEFULL",l[d.COERCEPLAIN]+`(?:${l[d.PRERELEASE]})?(?:${l[d.BUILD]})?(?:$|[^\\d])`),u("COERCERTL",l[d.COERCE],!0),u("COERCERTLFULL",l[d.COERCEFULL],!0),u("LONETILDE","(?:~>?)"),u("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",u("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),u("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),u("LONECARET","(?:\\^)"),u("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",u("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),u("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),u("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),u("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),u("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",u("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),u("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),u("STAR","(<|>)?=?\\s*\\*"),u("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),u("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Le,Le.exports)),Le.exports),a=function(){if(Ae)return we;Ae=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return we=s=>s?"object"!=typeof s?e:s:t}(),{compareIdentifiers:o}=function(){if(ye)return be;ye=1;const e=/^[0-9]+$/,t=(t,s)=>{const i=e.test(t),n=e.test(s);return i&&n&&(t=+t,s=+s),t===s?0:i&&!n?-1:n&&!i?1:t<s?-1:1};return be={compareIdentifiers:t,rcompareIdentifiers:(e,s)=>t(s,e)}}();class r{constructor(o,l){if(l=a(l),o instanceof r){if(o.loose===!!l.loose&&o.includePrerelease===!!l.includePrerelease)return o;o=o.version}else if("string"!=typeof o)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof o}".`);if(o.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",o,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const d=o.trim().match(l.loose?i[n.LOOSE]:i[n.FULL]);if(!d)throw new TypeError(`Invalid Version: ${o}`);if(this.raw=o,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<s)return t}return e})):this.prerelease=[],this.build=d[5]?d[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(t){if(e("SemVer.compare",this.version,this.options,t),!(t instanceof r)){if("string"==typeof t&&t===this.version)return 0;t=new r(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),o(this.major,e.major)||o(this.minor,e.minor)||o(this.patch,e.patch)}comparePre(t){if(t instanceof r||(t=new r(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let s=0;do{const i=this.prerelease[s],n=t.prerelease[s];if(e("prerelease compare",s,i,n),void 0===i&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===i)return-1;if(i!==n)return o(i,n)}while(++s)}compareBuild(t){t instanceof r||(t=new r(t,this.options));let s=0;do{const i=this.build[s],n=t.build[s];if(e("build compare",s,i,n),void 0===i&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===i)return-1;if(i!==n)return o(i,n)}while(++s)}inc(e,t,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,s),this.inc("pre",t,s);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 e=Number(s)?1:0;if(!t&&!1===s)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let i=this.prerelease.length;for(;--i>=0;)"number"==typeof this.prerelease[i]&&(this.prerelease[i]++,i=-2);if(-1===i){if(t===this.prerelease.join(".")&&!1===s)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let i=[t,e];!1===s&&(i=[t]),0===o(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Ce=r}const Fe=N(function(){if(Se)return Te;Se=1;const e=function(){if(xe)return _e;xe=1;const e=Ne();return _e=(t,s,i=!1)=>{if(t instanceof e)return t;try{return new e(t,s)}catch(e){if(!i)return null;throw e}}}();return Te=(t,s)=>{const i=e(t,s);return i?i.version:null}}());var Ue,Ee;const Ie=N(function(){if(Ee)return Ue;Ee=1;const e=Ne();return Ue=(t,s)=>new e(t,s).major}());class Pe{bus;constructor(e){"function"==typeof e.getVersion&&Fe(e.getVersion())?Ie(e.getVersion())!==Ie(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()):console.warn("Proxying an event bus with an unknown or invalid version"),this.bus=e}getVersion(){return"3.3.1"}subscribe(e,t){this.bus.subscribe(e,t)}unsubscribe(e,t){this.bus.unsubscribe(e,t)}emit(e,t){this.bus.emit(e,t)}}class ze{handlers=new Map;getVersion(){return"3.3.1"}subscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).concat(t))}unsubscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).filter((e=>e!==t)))}emit(e,t){(this.handlers.get(e)||[]).forEach((e=>{try{e(t)}catch(e){console.error("could not invoke event listener",e)}}))}}let Be=null;function De(e,t){(null!==Be?Be:"undefined"==typeof window?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&void 0===window._nc_event_bus&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),Be=void 0!==window?._nc_event_bus?new Pe(window._nc_event_bus):window._nc_event_bus=new ze,Be)).emit(e,t)}class Re extends r.m{id;order;constructor(e,t=100){super(),this.id=e,this.order=t}filter(e){throw new Error("Not implemented")}updateChips(e){this.dispatchTypedEvent("update:chips",new CustomEvent("update:chips",{detail:e}))}filterUpdated(){this.dispatchTypedEvent("update:filter",new CustomEvent("update:filter"))}}function Oe(e){if(window._nc_filelist_filters||(window._nc_filelist_filters=new Map),window._nc_filelist_filters.has(e.id))throw new Error(`File list filter "${e.id}" already registered`);window._nc_filelist_filters.set(e.id,e),De("files:filter:added",e)}function je(e){window._nc_filelist_filters&&window._nc_filelist_filters.has(e)&&(window._nc_filelist_filters.delete(e),De("files:filter:removed",e))}function Me(){return window._nc_filelist_filters?[...window._nc_filelist_filters.values()]:[]}const Ve=function(e){return(void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new c,i.o.debug("NewFileMenu initialized")),window._nc_newfilemenu).getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},40603:(e,t,s)=>{s.d(t,{A:()=>i.N});var i=s(75749)},61501:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list[data-v-1affbcbc]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-1affbcbc]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-1affbcbc] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-1affbcbc] tbody tr{contain:strict}.files-list[data-v-1affbcbc] tbody tr:hover,.files-list[data-v-1affbcbc] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-1affbcbc] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-1affbcbc] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-1affbcbc] .files-list__table{display:block}.files-list[data-v-1affbcbc] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-1affbcbc] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-1affbcbc] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-1affbcbc] .files-list__thead,.files-list[data-v-1affbcbc] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-1affbcbc] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-1affbcbc] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-1affbcbc] td,.files-list[data-v-1affbcbc] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-1affbcbc] td span,.files-list[data-v-1affbcbc] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-1affbcbc] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-1affbcbc] .files-list__row-checkbox{justify-content:center}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-1affbcbc] .files-list__row:hover,.files-list[data-v-1affbcbc] .files-list__row:focus,.files-list[data-v-1affbcbc] .files-list__row:active,.files-list[data-v-1affbcbc] .files-list__row--active,.files-list[data-v-1affbcbc] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-1affbcbc] .files-list__row:hover>*,.files-list[data-v-1affbcbc] .files-list__row:focus>*,.files-list[data-v-1affbcbc] .files-list__row:active>*,.files-list[data-v-1affbcbc] .files-list__row--active>*,.files-list[data-v-1affbcbc] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-1affbcbc] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-1affbcbc] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-1affbcbc] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-1affbcbc] .files-list__row-icon *{cursor:pointer}.files-list[data-v-1affbcbc] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-1affbcbc] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-1affbcbc] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-1affbcbc] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-1affbcbc] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-1affbcbc] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-1affbcbc] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-1affbcbc] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-1affbcbc] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-1affbcbc] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-1affbcbc] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-1affbcbc] .files-list__row-actions{width:auto}.files-list[data-v-1affbcbc] .files-list__row-actions~td,.files-list[data-v-1affbcbc] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-1affbcbc] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-1affbcbc] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-1affbcbc] .files-list__row-mime,.files-list[data-v-1affbcbc] .files-list__row-mtime,.files-list[data-v-1affbcbc] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-1affbcbc] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-1affbcbc] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-1affbcbc] .files-list__row-mime{width:calc(var(--row-height)*2.5)}.files-list[data-v-1affbcbc] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-1affbcbc] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"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",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: var(--default-clickable-area);\n\t--icon-preview-size: 32px;\n\n\t--fixed-block-start-position: var(--default-clickable-area);\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&:has(.file-list-filters__active) {\n\t\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\n\t}\n\n\t& :deep() {\n\t\t// Table head, body and footer\n\t\ttbody {\n\t\t\twill-change: padding;\n\t\t\tcontain: layout paint style;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\n\t\t\t/* Hover effect on tbody lines only */\n\t\t\ttr {\n\t\t\t\tcontain: strict;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Before table and thead\n\t\t.files-list__before {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.files-list__selected {\n\t\t\tpadding-inline-end: 12px;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.files-list__table {\n\t\t\tdisplay: block;\n\n\t\t\t&.files-list__table--with-thead-overlay {\n\t\t\t\t// Hide the table header below the overlay\n\t\t\t\tmargin-block-start: calc(-1 * var(--row-height));\n\t\t\t}\n\t\t}\n\n\t\t.files-list__filters {\n\t\t\t// Pinned on top when scrolling above table header\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\t// ensure there is a background to hide the file list on scroll\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tz-index: 10;\n\t\t\t// fixed the size\n\t\t\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\n\t\t\theight: var(--fixed-block-start-position);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.files-list__thead-overlay {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t\t// Save space for a row checkbox\n\t\t\tmargin-inline-start: var(--row-height);\n\t\t\t// More than .files-list__thead\n\t\t\tz-index: 20;\n\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t// Reuse row styles\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\t.files-list__thead,\n\t\t.files-list__tfoot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\t// Table header\n\t\t.files-list__thead {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\tbox-sizing: border-box;\n\t\t\tuser-select: none;\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: start;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row--failed {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: 0;\n\t\t\tinset-inline: 0;\n\t\t\tbottom: 0;\n\t\t\topacity: .1;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-error);\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row {\n\t\t\t&:hover, &:focus, &:active, &--active, &--dragover {\n\t\t\t\t// WCAG AA compliant\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t// text-maxcontrast have been designed to pass WCAG AA over\n\t\t\t\t// a white background, we need to adjust then.\n\t\t\t\t--color-text-maxcontrast: var(--color-main-text);\n\t\t\t\t> * {\n\t\t\t\t\t--color-border: var(--color-border-dark);\n\t\t\t\t}\n\n\t\t\t\t// Hover state of the row should also change the favorite markers background\n\t\t\t\t.favorite-marker-icon svg path {\n\t\t\t\t\tstroke: var(--color-background-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&--dragover * {\n\t\t\t\t// Prevent dropping on row children\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t// Entry preview or mime icon\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-inline-end: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t// Icon is also clickable\n\t\t\t* {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\n\t\t\t\t&:not(.files-list__row-icon-favorite) svg {\n\t\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\t}\n\n\t\t\t\t// Slightly increase the size of the folder icon\n\t\t\t\t&.folder-icon,\n\t\t\t\t&.folder-open-icon {\n\t\t\t\t\tmargin: -3px;\n\t\t\t\t\tsvg {\n\t\t\t\t\t\twidth: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t\theight: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-preview-container {\n\t\t\t\tposition: relative; // Needed for the blurshash to be positioned correctly\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t}\n\n\t\t\t&-blurhash {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block-start: 0;\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\t// Center and contain the preview\n\t\t\t\tobject-fit: contain;\n\t\t\t\tobject-position: center;\n\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t/* Preview not loaded animation effect */\n\t\t\t\t&:not(.files-list__row-icon-preview--loaded) {\n\t\t\t\t\tbackground: var(--color-loading-dark);\n\t\t\t\t\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0px;\n\t\t\t\tinset-inline-end: -10px;\n\t\t\t}\n\n\t\t\t// File and folder overlay\n\t\t\t&-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\tmax-height: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tmax-width: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tcolor: var(--color-primary-element-text);\n\t\t\t\t// better alignment with the folder icon\n\t\t\t\tmargin-block-start: 2px;\n\n\t\t\t\t// Improve icon contrast with a background for files\n\t\t\t\t&--file {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground: var(--color-main-background);\n\t\t\t\t\tborder-radius: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Entry link\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\tbutton.files-list__row-name-link {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\ttext-align: start;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\t// Necessary for flex grow to work\n\t\t\t\tmin-width: 0;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t// Already added to the inner text, see rule below\n\t\t\t\t&:focus-visible {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text {\n\t\t\t\t\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\t}\n\t\t\t\t&:focus:not(:focus-visible) .files-list__row-name-text {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n\t\t\t\tpadding-inline-start: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t// always show the extension\n\t\t\t\toverflow: visible;\n\t\t\t}\n\t\t}\n\n\t\t// Rename form\n\t\t.files-list__row-rename {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 600px;\n\t\t\tinput {\n\t\t\t\twidth: 100%;\n\t\t\t\t// Align with text, 0 - padding - border\n\t\t\t\tmargin-inline-start: -8px;\n\t\t\t\tpadding: 2px 6px;\n\t\t\t\tborder-width: 2px;\n\n\t\t\t\t&:invalid {\n\t\t\t\t\t// Show red border on invalid input\n\t\t\t\t\tborder-color: var(--color-error);\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\t// take as much space as necessary\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-action--inline {\n\t\t\tmargin-inline-end: 7px;\n\t\t}\n\n\t\t.files-list__row-mime,\n\t\t.files-list__row-mtime,\n\t\t.files-list__row-size {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t.files-list__row-size {\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// Right align content/text\n\t\t\tjustify-content: flex-end;\n\t\t}\n\n\t\t.files-list__row-mtime {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\n\t\t.files-list__row-mime {\n\t\t\twidth: calc(var(--row-height) * 2.5);\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n\n@media screen and (max-width: 512px) {\n\t.files-list :deep(.files-list__filters) {\n\t\t// Reduce padding on mobile\n\t\tpadding-inline: var(--default-grid-baseline, 4px);\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},62886:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-0ca874fa]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-0ca874fa]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-0ca874fa]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-0ca874fa]{flex:0 0}.files-list__header-share-button[data-v-0ca874fa]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-0ca874fa]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-0ca874fa]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__before[data-v-0ca874fa]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-0ca874fa]{display:flex;height:100%}.files-list__refresh-icon[data-v-0ca874fa]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-0ca874fa]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA",sourcesContent:["\n:global(.toast-loading-icon) {\n\t// Reduce start margin (it was made for text but this is an icon)\n\tmargin-inline-start: -4px;\n\t// 16px icon + 5px on both sides\n\tmin-width: 26px;\n}\n\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\tposition: relative !important;\n}\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\tmax-width: 100%;\n\t\t// Align with the navigation toggle icon\n\t\tmargin-block: var(--app-navigation-padding, 4px);\n\t\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\n\n\t\t&--public {\n\t\t\t// There is no navigation toggle on public shares\n\t\t\tmargin-inline: 0 var(--app-navigation-padding, 4px);\n\t\t}\n\n\t\t>* {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\n\t\t&-share-button {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\n\t\t\t&--shared {\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\n\t\t&-actions {\n\t\t\tmin-width: fit-content !important;\n\t\t\tmargin-inline: calc(var(--default-grid-baseline) * 2);\n\t\t}\n\t}\n\n\t&__before {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\n\t}\n\n\t&__empty-view-wrapper {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t}\n\n\t&__refresh-icon {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t}\n\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n"],sourceRoot:""}]);const r=o},63569:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropNotice.vue"],names:[],mappings:"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA",sourcesContent:["\n.files-list__drag-drop-notice {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\t// Breadcrumbs height + row thead height\n\tmin-height: calc(58px + 55px);\n\tmargin: 0;\n\tuser-select: none;\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: var(--color-main-background);\n\tborder-color: black;\n\n\th3 {\n\t\tmargin-inline-start: 16px;\n\t\tcolor: inherit;\n\t}\n\n\t&-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 15vh;\n\t\tmax-height: 70%;\n\t\tpadding: 0 5vw;\n\t\tborder: 2px var(--color-border-dark) dashed;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n\n"],sourceRoot:""}]);const r=o},72383:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".setting-link[data-v-9a0994e0]:hover{text-decoration:underline}.shortcut-key[data-v-9a0994e0]{width:160px;white-space:normal}.shortcut-key span[data-v-9a0994e0]{white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n"],sourceRoot:""}]);const r=o},75688:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".app-navigation-entry__settings-quota[data-v-d3cdbf54]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-d3cdbf54] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-d3cdbf54]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n"],sourceRoot:""}]);const r=o},80355:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(71354),n=s.n(i),a=s(76314),o=s.n(a)()(n());o.push([e.id,".app-navigation[data-v-084c464a] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-084c464a]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-084c464a]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-084c464a]{height:100%}.files-navigation[data-v-084c464a] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA",sourcesContent:["\n.app-navigation {\n\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\n\t\tcolor: var(--color-primary-element-text);\n\t}\n\n\t> ul.app-navigation__list {\n\t\t// Use flex gap value for more elegant spacing\n\t\tpadding-bottom: var(--default-grid-baseline, 4px);\n\t}\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n\n.files-navigation {\n\t&__list {\n\t\theight: 100%; // Fill all available space for sticky views\n\t}\n\n\t:deep(.app-navigation__content > ul.app-navigation__list) {\n\t\twill-change: scroll-position;\n\t}\n}\n"],sourceRoot:""}]);const r=o},85748:(e,t,s)=>{s.d(t,{S:()=>B,U:()=>X,a:()=>R,b:()=>N,g:()=>Z,h:()=>Q,i:()=>O,l:()=>E,n:()=>W,o:()=>ee,t:()=>F}),s(91543);var i=s(82680),n=s(85471),a=s(21777),o=s(35810),r=s(71225),l=s(43627),d=s(87485),c=s(65043),m=s(53553),g=s(49264),u=s(11195),f=s(63814),p=s(11950),h=s(35947),v=s(380),w=s(94205),A=s(57505),b=s(61744),y=s(15502),C=s(24764),k=s(97012),_=s(6695),x=s(95101),T=s(85168);const S=(0,u.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"Ali <alimahwer@yahoo.com>, 2025","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"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;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nabu.s3ud, 2024\nAli <alimahwer@yahoo.com>, 2025\n"},msgstr:["Last-Translator: Ali <alimahwer@yahoo.com>, 2025\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: 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;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" هو اسم ممنوع لملف أو مجلد.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" هو نوع ممنوع أن يكون لملف.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" هو غير مسموح به في اسم ملف أو مجلد.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفان متعارضان في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفات متعارضة في {dirname}","{count} ملفات متعارضة في {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ","مازال {seconds} ثوانٍ"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["بضع ثوانٍ متبقية"]},assembling:{msgid:"assembling",msgstr:["تجميع"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"Create new":{msgid:"Create new",msgstr:["إنشاء جديد"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["تعذّرت إعادة تجميع الكتل معاً "]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["تعذّر رفع الملف"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['غير مسموح ان ينتهي اسم الملف بـ "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["اسم ملف غير صحيح"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معروف"]},New:{msgid:"New",msgstr:["جديد"]},"New filename":{msgid:"New filename",msgstr:["اسم ملف جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},Rename:{msgid:"Rename",msgstr:["تغيير التسمية"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},Skip:{msgid:"Skip",msgstr:["تخطِّي"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},Upload:{msgid:"Upload",msgstr:["رفع الملفات"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload folders":{msgid:"Upload folders",msgstr:["رفع مجلدات"]},"Upload from device":{msgid:"Upload from device",msgstr:["الرفع من جهاز "]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["تمّ إلغاء عملية رفع الملفات"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["تمّ تجاوز الرفع"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['رفع "{folder}" تمّ تجاوزه']},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2025","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\nMartin Hankovec, 2024\nAppukonrad <appukonrad@gmail.com>, 2024\nPavel Borecki <pavel.borecki@gmail.com>, 2025\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2025\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ není povoleno použít jako název souboru či složky."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ není povoleného typu souboru."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ není povoleno použít v rámci názvu souboru či složky."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["zbývá {seconds}","zbývají {seconds}","zbývá {seconds}","zbývají {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},assembling:{msgid:"assembling",msgstr:["sestavování"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"Create new":{msgid:"Create new",msgstr:["Vytvořit nový"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Shluky se nepodařilo dát dohromady"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Soubor se nepodařilo nahrát"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Názvy souborů nemohou končit na „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný název souboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New filename":{msgid:"New filename",msgstr:["Nový název souboru"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},Rename:{msgid:"Rename",msgstr:["Přejmenovat"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},Skip:{msgid:"Skip",msgstr:["Přeskočit"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit {count} soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Skip this file":{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},Upload:{msgid:"Upload",msgstr:["Nahrát"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrát složky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrát ze zařízení"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávání bylo zrušeno"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrání bylo přeskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Nahrání „{folder}“ bylo přeskočeno"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2025","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRasmus Rosendahl-Kaa, 2024\nMartin Bonde <Martin@maboni.dk>, 2025\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2025\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tilladt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage","{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},assembling:{msgid:"assembling",msgstr:["samling"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"Create new":{msgid:"Create new",msgstr:["Opret ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Mislykkedes at samle stumperne sammen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Kunne ikke uploade filen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavne må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldigt filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nyt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},Rename:{msgid:"Rename",msgstr:["Omdøb"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Spring over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload fra enhed"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload er blevet annulleret"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload er blevet sprunget over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload af "{folder}" er blevet sprunget over']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2025","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\nMartin Wilichowski, 2025\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\nMario Siegmann <mario_siegmann@web.de>, 2025\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} Sekunde verbleibt","{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},assembling:{msgid:"assembling",msgstr:["zusammenfügen"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Das Zusammenfügen der Teile ist fehlgeschlagen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Das Hochladen der Datei ist fehlgeschlagen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Skip this file":{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2025","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMartin Wilichowski, 2025\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\nMario Siegmann <mario_siegmann@web.de>, 2025\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} Sekunde verbleibt","{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},assembling:{msgid:"assembling",msgstr:["zusammenfügen"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Das Zusammenfügen der Teile ist fehlgeschlagen"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Beim Hochladen der Datei ist ein Fehler aufgetreten"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Skip this file":{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Efstathios Iosifidis <iefstathios@gmail.com>, 2025","Language-Team":"Greek (https://app.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nEfstathios Iosifidis <iefstathios@gmail.com>, 2025\n"},msgstr:["Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2025\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Το "{segment}" είναι απαγορευμένο όνομα αρχείου ή φακέλου.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Το "{segment}" είναι απαγορευμένος τύπος αρχείου.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Το "{segment}" δεν επιτρέπεται μέσα στο όνομα ενός αρχείου ή φακέλου.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} αρχείο σε διένεξη","{count} αρχεία σε διένεξη"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} αρχείο σε διένεξη στον φάκελο {dirname}","{count} αρχεία σε διένεξη στον φάκελο {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["Απομένει {seconds} δευτερόλεπτο","Απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},assembling:{msgid:"assembling",msgstr:["συναρμολόγηση"]},Cancel:{msgid:"Cancel",msgstr:["Ακύρωση"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της λειτουργίας"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},Continue:{msgid:"Continue",msgstr:["Συνέχεια"]},"Create new":{msgid:"Create new",msgstr:["Δημιουργία νέου"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},"Existing version":{msgid:"Existing version",msgstr:["Υπάρχουσα έκδοση"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Αποτυχία συναρμολόγησης των τμημάτων"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Αποτυχία μεταφόρτωσης του αρχείου"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Αν επιλέξετε και τις δύο εκδόσεις, το εισερχόμενο αρχείο θα έχει έναν αριθμό προσαρτημένο στο όνομά του."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Μη έγκυρο όνομα αρχείου"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},New:{msgid:"New",msgstr:["Νέο"]},"New filename":{msgid:"New filename",msgstr:["Νέο όνομα αρχείου"]},"New version":{msgid:"New version",msgstr:["Νέα έκδοση"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Preview image":{msgid:"Preview image",msgstr:["Προεπισκόπηση εικόνας"]},Rename:{msgid:"Rename",msgstr:["Μετονομασία"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Επιλογή όλων των πλαισίων ελέγχου"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπαρχόντων αρχείων"]},"Select all new files":{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},Skip:{msgid:"Skip",msgstr:["Παράλειψη"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Παράλειψη αυτού του αρχείου","Παράλειψη {count} αρχείων"]},"Unknown size":{msgid:"Unknown size",msgstr:["Άγνωστο μέγεθος"]},Upload:{msgid:"Upload",msgstr:["Μεταφόρτωση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]},"Upload folders":{msgid:"Upload folders",msgstr:["Μεταφόρτωση φακέλων"]},"Upload from device":{msgid:"Upload from device",msgstr:["Μεταφόρτωση από συσκευή"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Η μεταφόρτωση ακυρώθηκε"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Η μεταφόρτωση παραλείφθηκε"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Η μεταφόρτωση του "{folder}" παραλείφθηκε']},"Upload progress":{msgid:"Upload progress",msgstr:["Πρόοδος μεταφόρτωσης"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας εισερχόμενος φάκελος, όλα τα αρχεία σε διένεξη μέσα σε αυτόν θα αντικατασταθούν."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας εισερχόμενος φάκελος, το περιεχόμενό του γράφεται στον υπάρχοντα φάκελο και εκτελείται αναδρομική επίλυση διενέξεων."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Μπορείτε είτε να μετονομάσετε το αρχείο, να παραλείψετε αυτό το αρχείο ή να ακυρώσετε όλη τη λειτουργία."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση κάθε αρχείου για να συνεχίσετε."]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2025","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndi Chandler <andi@gowling.com>, 2025\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2025\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" is a forbidden file or folder name.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" is a forbidden file type.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" is not allowed inside a file or folder name.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} seconds left","{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},assembling:{msgid:"assembling",msgstr:["assembling"]},Cancel:{msgid:"Cancel",msgstr:["Cancel"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"Create new":{msgid:"Create new",msgstr:["Create new"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Failed assembling the chunks together"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Failed uploading the file"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filenames must not end with "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Invalid filename"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},New:{msgid:"New",msgstr:["New"]},"New filename":{msgid:"New filename",msgstr:["New filename"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},Rename:{msgid:"Rename",msgstr:["Rename"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},Skip:{msgid:"Skip",msgstr:["Skip"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload folders"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload from device"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload has been cancelled"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload has been skipped"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload of "{folder}" has been skipped']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload progress"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["You can either rename the file, skip this file or cancel the whole operation."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Saltar"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matías Campo Hoet <matiascampo@gmail.com>, 2024","Language-Team":"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\n"},msgstr:["Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa de imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Cargar archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Cargar carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Cargar desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Carga cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la carga"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"Jehu Marcos Herrera Puentes, 2024","Language-Team":"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJehu Marcos Herrera Puentes, 2024\n"},msgstr:["Last-Translator: Jehu Marcos Herrera Puentes, 2024\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿Cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivo en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Cuáles archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Priit Jõerüüt <transifex@joeruut.com>, 2025","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPriit Jõerüüt <transifex@joeruut.com>, 2025\n"},msgstr:["Last-Translator: Priit Jõerüüt <transifex@joeruut.com>, 2025\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ on keelatud faili- või kausta nimi."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ on keelatud failitüüp."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ pole faili- või kausta nimes lubatud."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fail on vastuolus","{count} faili on vastuolus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail on vastuolus „{dirname}“ kaustas","{count} faili on vastuolus „{dirname}“ kaustas"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["jäänud {seconds} sekund","jäänud {seconds} sekundit"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["aega jäänud {time} "]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},assembling:{msgid:"assembling",msgstr:["koostamisel"]},Cancel:{msgid:"Cancel",msgstr:["Katkesta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Katkesta üleslaadimine"]},Continue:{msgid:"Continue",msgstr:["Jätka"]},"Create new":{msgid:"Create new",msgstr:["Loo uus"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},"Existing version":{msgid:"Existing version",msgstr:["Olemasolev versioon"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Tükkide koostamine üheks tervikuks ei õnnestunud"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Faili üleslaadimine ei õnnestunud"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Failinime lõpus ei tohi olla „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Vigane failinimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},New:{msgid:"New",msgstr:["Uus"]},"New filename":{msgid:"New filename",msgstr:["Uus failinimi"]},"New version":{msgid:"New version",msgstr:["Uus versioon"]},paused:{msgid:"paused",msgstr:["pausil"]},"Preview image":{msgid:"Preview image",msgstr:["Vaata pildi eelvaadet"]},Rename:{msgid:"Rename",msgstr:["Muuda nime"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vali kõik olemasolevad failid"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vali kõik uued failid"]},Skip:{msgid:"Skip",msgstr:["Jäta vahele"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Jäta vahele {count} fail","Jäta vahele {count} faili"]},"Skip this file":{msgid:"Skip this file",msgstr:["Jäta vahele see fail"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tundmatu suurus"]},Upload:{msgid:"Upload",msgstr:["Laadi üles"]},"Upload files":{msgid:"Upload files",msgstr:["Laadi failid üles"]},"Upload folders":{msgid:"Upload folders",msgstr:["Laadi kaustad üles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Laadi üles seadmest"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Üleslaadimine on katkestatud"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Üleslaadimine on vahele jäetud"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}“ kausta üleslaadimine on vahele jäetud"]},"Upload progress":{msgid:"Upload progress",msgstr:["Üleslaadimise edenemine"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Milliseid faile soovid säilitada?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamiseks pead valima vähemalt ühe versiooni igast failist."]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Alireza Rashidi, 2025","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nreza reza <forghan89@yahoo.com>, 2024\nAlireza Rashidi, 2025\n"},msgstr:["Last-Translator: Alireza Rashidi, 2025\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["{segment} یک نام فایل یا پوشه ممنوعه است."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["{segment} یک نوع فایل ممنوعه است."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["{segment} داخل نام فایل یا پوشه مجاز نیست."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} تداخل فایل","{count} تداخل فایلها"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} پرونده با {dirname} ناسازگاری داشت","{count} پرونده با {dirname} ناسازگاری داشت"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} ثانیه مانده","{seconds} ثانیه مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},assembling:{msgid:"assembling",msgstr:["سرهم کردن"]},Cancel:{msgid:"Cancel",msgstr:["رد کردن"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["رد کردن کل عملیات"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["رد کردن بارگذاری"]},Continue:{msgid:"Continue",msgstr:["ادامه"]},"Create new":{msgid:"Create new",msgstr:["ساخت جدید"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},"Existing version":{msgid:"Existing version",msgstr:["نگارش موجود"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["نتوانست تکههای را به سرهم کند"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["نتوانست پرونده را بارگذاری کند"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["نام پرونده نباید با {segment} پایان یابد."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["اگر هر دو نسخه را انتخاب کنید، یک عدد به نام پرونده ورودی اضافه خواهد شد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["نام پرونده نامعتبر"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["آخرین تاریخ تغییر نامشخص"]},New:{msgid:"New",msgstr:["جدید"]},"New filename":{msgid:"New filename",msgstr:["نام فایل جدید"]},"New version":{msgid:"New version",msgstr:["نسخه جدید"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Preview image":{msgid:"Preview image",msgstr:["پیش نمایش تصویر"]},Rename:{msgid:"Rename",msgstr:["تغییر نام"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["انتخاب همه چکباکسها"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["انتخاب همه فایلهای موجود"]},"Select all new files":{msgid:"Select all new files",msgstr:["انتخاب همه فایلهای جدید"]},Skip:{msgid:"Skip",msgstr:["رد شدن"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["رد شدن از ","رد شدن از {count} فایل"]},"Unknown size":{msgid:"Unknown size",msgstr:["اندازه نامشخص"]},Upload:{msgid:"Upload",msgstr:["بارگذاری"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری پروندهها"]},"Upload folders":{msgid:"Upload folders",msgstr:["بارگذاری پوشهها"]},"Upload from device":{msgid:"Upload from device",msgstr:["بارگذاری از دستگاه"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["بارگذاری رد شده است"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["بارگذاری نادیده گرفته شده است"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["بارگذاری {folder} نادیده گرفته شده است"]},"Upload progress":{msgid:"Upload progress",msgstr:["روند بارگذاری"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["هنگامی که یک پوشه ورودی انتخاب میشود، هر فایل متناقضی در آن نیز بازنویسی میشود."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["هنگامی که یک پوشه دریافتی انتخاب می شود ، محتوا در پوشه موجود نوشته می شود و حل ناسازگاری بازگشتی انجام می شود."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["کدام پروندهها را میخواهید نگه دارید؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["میتوانید نام پرونده را تغییر دهید، از این پرونده رد شوید یا کل عملیات را رد کنید."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["برای ادامه باید دستکم یک نگارش از هر پرونده را انتخاب کنید."]}}}}},{locale:"fi",json:{charset:"utf-8",headers:{"Last-Translator":"Jiri Grönroos <jiri.gronroos@iki.fi>, 2025","Language-Team":"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nthingumy, 2024\nteemue, 2024\nJiri Grönroos <jiri.gronroos@iki.fi>, 2025\n"},msgstr:["Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" on kielletty tiedoston tai hakemiston nimi.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" on kielletty tiedostotyyppi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ei ole sallittu tiedoston tai hakemiston nimessä.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} tiedoston ristiriita","{count} tiedoston ristiriita"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tiedoston ristiriita kansiossa {dirname}","{count} tiedoston ristiriita kansiossa {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekunti jäljellä","{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},assembling:{msgid:"assembling",msgstr:["kootaan"]},Cancel:{msgid:"Cancel",msgstr:["Peruuta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Peruuta koko toimenpide"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},Continue:{msgid:"Continue",msgstr:["Jatka"]},"Create new":{msgid:"Create new",msgstr:["Luo uusi"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},"Existing version":{msgid:"Existing version",msgstr:["Olemassa oleva versio"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Palojen kokoaminen yhteen epäonnistui"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Tiedoston lähetys epäonnistui"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Tiedoston nimi ei saa päättyä "{segment}"']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Kielletty/väärä tiedoston nimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimeisin muokkauspäivä on tuntematon"]},New:{msgid:"New",msgstr:["Uusi"]},"New filename":{msgid:"New filename",msgstr:["Uusi tiedostonimi"]},"New version":{msgid:"New version",msgstr:["Uusi versio"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Preview image":{msgid:"Preview image",msgstr:["Esikatsele kuva"]},Rename:{msgid:"Rename",msgstr:["Nimeä uudelleen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Valitse kaikki valintaruudut"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Valitse kaikki olemassa olevat tiedostot"]},"Select all new files":{msgid:"Select all new files",msgstr:["Valitse kaikki uudet tiedostot"]},Skip:{msgid:"Skip",msgstr:["Ohita"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ohita tämä tiedosto","Ohita {count} tiedostoa"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tuntematon koko"]},Upload:{msgid:"Upload",msgstr:["Lähetä"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]},"Upload folders":{msgid:"Upload folders",msgstr:["Lähetä kansioita"]},"Upload from device":{msgid:"Upload from device",msgstr:["Lähetä laitteelta"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Lähetys on peruttu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Lähetys on ohitettu"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Hakemiston "{folder}" lähetys on ohitettu']},"Upload progress":{msgid:"Upload progress",msgstr:["Lähetyksen edistyminen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mitkä tiedostot haluat säilyttää?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi."]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"Lisa Cintosh, 2025","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\nJérôme HERBINET, 2024\nacazenave, 2024\nLisa Cintosh, 2025\n"},msgstr:["Last-Translator: Lisa Cintosh, 2025\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" est un nom de fichier ou de dossier interdit.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" est un type de fichier interdit.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} seconde restante","{seconds} secondes restantes","{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},assembling:{msgid:"assembling",msgstr:["assemblage"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les téléversements"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"Create new":{msgid:"Create new",msgstr:["Créer un nouveau"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Échec de l'assemblage des morceaux"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Échec du téléversement du fichier"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Le nom des fichiers ne doit pas finir par "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nom de fichier invalide"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New filename":{msgid:"New filename",msgstr:["Nouveau nom de fichier"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},Rename:{msgid:"Rename",msgstr:["Renommer"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},Skip:{msgid:"Skip",msgstr:["Ignorer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},Upload:{msgid:"Upload",msgstr:["Téléverser"]},"Upload files":{msgid:"Upload files",msgstr:["Téléverser des fichiers"]},"Upload folders":{msgid:"Upload folders",msgstr:["Téléverser des dossiers"]},"Upload from device":{msgid:"Upload from device",msgstr:["Téléverser depuis l'appareil"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Le téléversement a été annulé"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Le téléversement a été ignoré"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Le téléversement de "{folder}" a été ignoré']},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléversement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"ga",json:{charset:"utf-8",headers:{"Last-Translator":"Aindriú Mac Giolla Eoin, 2025","Language-Team":"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)","Content-Type":"text/plain; charset=UTF-8",Language:"ga","Plural-Forms":"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nAindriú Mac Giolla Eoin, 2025\n"},msgstr:["Last-Translator: Aindriú Mac Giolla Eoin, 2025\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ga\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Is ainm toirmiscthe comhaid nó fillteáin é "{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Is cineál comhaid toirmiscthe é "{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Ní cheadaítear "{segment}" taobh istigh d\'ainm comhaid nó fillteáin.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} coimhlint comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} coimhlint comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha","{seconds} soicind fágtha"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} fágtha"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["cúpla soicind fágtha"]},assembling:{msgid:"assembling",msgstr:["ag cur le chéile"]},Cancel:{msgid:"Cancel",msgstr:["Cealaigh"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht iomlán"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cealaigh uaslódálacha"]},Continue:{msgid:"Continue",msgstr:["Leanúint ar aghaidh"]},"Create new":{msgid:"Create new",msgstr:["Cruthaigh nua"]},"estimating time left":{msgid:"estimating time left",msgstr:["ag déanamh meastachán ar an am atá fágtha"]},"Existing version":{msgid:"Existing version",msgstr:["Leagan láithreach "]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Theip ar na smután a chur le chéile le chéile"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Theip ar uaslódáil an chomhaid"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Níor cheart go gcríochnaíonn comhaid chomhad le "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ainm comhaid neamhbhailí"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dáta modhnaithe is déanaí anaithnid"]},New:{msgid:"New",msgstr:["Nua"]},"New filename":{msgid:"New filename",msgstr:["Ainm comhaid nua"]},"New version":{msgid:"New version",msgstr:["Leagan nua"]},paused:{msgid:"paused",msgstr:["sos"]},"Preview image":{msgid:"Preview image",msgstr:["Íomhá réamhamharc"]},Rename:{msgid:"Rename",msgstr:["Athainmnigh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Roghnaigh gach ticbhosca"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Roghnaigh gach comhad atá ann cheana féin"]},"Select all new files":{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},Skip:{msgid:"Skip",msgstr:["Scipeáil"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Léim an comhad {count}","Léim thar {count} comhad","Léim thar {count} comhad","Léim thar {count} comhad","Léim thar {count} comhad"]},"Skip this file":{msgid:"Skip this file",msgstr:["Seachain an comhad seo"]},"Unknown size":{msgid:"Unknown size",msgstr:["Méid anaithnid"]},Upload:{msgid:"Upload",msgstr:["Uaslódáil"]},"Upload files":{msgid:"Upload files",msgstr:["Uaslódáil comhaid"]},"Upload folders":{msgid:"Upload folders",msgstr:["Uaslódáil fillteáin"]},"Upload from device":{msgid:"Upload from device",msgstr:["Íosluchtaigh ó ghléas"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Cuireadh an t-uaslódáil ar ceal"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Léiríodh an uaslódáil"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Léiríodh an uaslódáil "{folder}".']},"Upload progress":{msgid:"Upload progress",msgstr:["Uaslódáil dul chun cinn"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2025\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» é un nome vedado para un ficheiro ou cartafol."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» é un tipo de ficheiro vedado."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["falta {seconds} segundo","faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},assembling:{msgid:"assembling",msgstr:["ensamblando"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancela toda a operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear un novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Produciuse un fallo ao ensamblar os anacos"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Produciuse un fallo ao enviar o ficheiro"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Os nomes de ficheiros non deben rematar con «{segment}»."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["O nome de ficheiro non é válido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de ficheiro"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar cartafoles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Enviar dende o dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O envío foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O envío foi omitido"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["O envío de «{folder}» foi omitido"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024","Language-Team":"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\n"},msgstr:["Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Tiltott fájl- vagy mappanév: „{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Tiltott fájltípus: „{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Nem megengedett egy fájl- vagy mappanévben: „{segment}".']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}fájlt érintő konfliktus","{count} fájlt érintő konfliktus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fájlt érintő konfliktus a mappában: {dirname}","{count}fájlt érintő konfliktus a mappában: {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Cancel:{msgid:"Cancel",msgstr:["Mégse"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Teljes művelet megszakítása"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},Continue:{msgid:"Continue",msgstr:["Tovább"]},"Create new":{msgid:"Create new",msgstr:["Új létrehozása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},"Existing version":{msgid:"Existing version",msgstr:["Jelenlegi változat"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Fájlnevek nem végződhetnek erre: „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Érvénytelen fájlnév"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Utolsó módosítás dátuma ismeretlen"]},New:{msgid:"New",msgstr:["Új"]},"New filename":{msgid:"New filename",msgstr:["Új fájlnév"]},"New version":{msgid:"New version",msgstr:["Új verzió"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Preview image":{msgid:"Preview image",msgstr:["Kép előnézete"]},Rename:{msgid:"Rename",msgstr:["Átnevezés"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Minden jelölőnégyzet kijelölése"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Minden jelenlegi fájl kijelölése"]},"Select all new files":{msgid:"Select all new files",msgstr:["Minden új fájl kijelölése"]},Skip:{msgid:"Skip",msgstr:["Kihagyás"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ezen fájl kihagyása","{count}fájl kihagyása"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ismeretlen méret"]},Upload:{msgid:"Upload",msgstr:["Feltöltés"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]},"Upload folders":{msgid:"Upload folders",msgstr:["Mappák feltöltése"]},"Upload from device":{msgid:"Upload from device",msgstr:["Feltöltés eszközről"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Feltöltés meg lett szakítva"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Feltöltés át lett ugorva"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}” feltöltése át lett ugorva"]},"Upload progress":{msgid:"Upload progress",msgstr:["Feltöltési folyamat"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat kívánja megtartani?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz minden fájlból legalább egy verziót ki kell választani."]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2025","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nSveinn í Felli <sv1@fellsnet.is>, 2025\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2025\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er bannað sem heiti á skrá eða möppu.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er bönnuð skráartegund.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ekki leyfilegt innan í heiti á skrá eða möppu.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekúnda eftir","{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},assembling:{msgid:"assembling",msgstr:["set saman"]},Cancel:{msgid:"Cancel",msgstr:["Hætta við"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Hætta við alla aðgerðina"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"Create new":{msgid:"Create new",msgstr:["Búa til nýtt"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["Mistókst að setja saman bútana"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["Mistókst að senda inn skrána"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Skráaheiti mega ekki enda á "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ógilt skráarheiti"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New filename":{msgid:"New filename",msgstr:["Nýtt skráarheiti"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},Rename:{msgid:"Rename",msgstr:["Endurnefna"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},Skip:{msgid:"Skip",msgstr:["Sleppa"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},Upload:{msgid:"Upload",msgstr:["Senda inn"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Upload folders":{msgid:"Upload folders",msgstr:["Senda inn möppur"]},"Upload from device":{msgid:"Upload from device",msgstr:["Senda inn frá tæki"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Hætt hefur verið við innsendingu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Innsendingu hefur verið sleppt"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Innsendingu á "{folder}" hefur verið sleppt']},"Upload progress":{msgid:"Upload progress",msgstr:["Framvinda innsendingar"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"albanobattistella <albanobattistella@gmail.com>, 2024","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFrancesco Sercia, 2024\nalbanobattistella <albanobattistella@gmail.com>, 2024\n"},msgstr:["Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" è un nome di file o cartella proibito.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"è un tipo di file proibito.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" non è consentito all\'interno di un nome di file o cartella.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},Cancel:{msgid:"Cancel",msgstr:["Annulla"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"Create new":{msgid:"Create new",msgstr:["Crea nuovo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['I nomi dei file non devono terminare con "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome file non valido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New filename":{msgid:"New filename",msgstr:["Nuovo nome file"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},Rename:{msgid:"Rename",msgstr:["Rinomina"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},Skip:{msgid:"Skip",msgstr:["Salta"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},Upload:{msgid:"Upload",msgstr:["Caricamento"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Upload folders":{msgid:"Upload folders",msgstr:["Carica cartelle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carica dal dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Caricamento annullato"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Il caricamento è stato saltato"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Il caricamento di "{folder}" è stato saltato']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso del caricamento"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["È possibile rinominare il file, ignorarlo o annullare l'intera operazione."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"ja",json:{charset:"utf-8",headers:{"Last-Translator":"test test, 2025","Language-Team":"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nkojima.imamura, 2024\nTakafumi AKAMATSU, 2024\ndevi, 2024\nkshimohata, 2024\ntest test, 2025\n"},msgstr:["Last-Translator: test test, 2025\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" は禁止されているファイルまたはフォルダ名です。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" は禁止されているファイルタイプです。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['ファイルまたはフォルダ名に "{segment}" を含めることはできません。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ファイル数の競合"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} で {count} 個のファイルが競合しています"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["残り{seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},assembling:{msgid:"assembling",msgstr:["組み立て中"]},Cancel:{msgid:"Cancel",msgstr:["キャンセル"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセルする"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},Continue:{msgid:"Continue",msgstr:["続ける"]},"Create new":{msgid:"Create new",msgstr:["新規作成"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},"Existing version":{msgid:"Existing version",msgstr:["既存バージョン"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["チャンクを一緒に組み立てるのに失敗しました。"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["ファイルのアップロードに失敗しました。"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['ファイル名の末尾に "{segment}" を付けることはできません。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無効なファイル名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},New:{msgid:"New",msgstr:["新規作成"]},"New filename":{msgid:"New filename",msgstr:["新しいファイル名"]},"New version":{msgid:"New version",msgstr:["新しいバージョン"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Preview image":{msgid:"Preview image",msgstr:["プレビュー画像"]},Rename:{msgid:"Rename",msgstr:["名前を変更"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["すべて選択"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["すべての既存ファイルを選択"]},"Select all new files":{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},Skip:{msgid:"Skip",msgstr:["スキップ"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} 個のファイルをスキップする"]},"Unknown size":{msgid:"Unknown size",msgstr:["サイズ不明"]},Upload:{msgid:"Upload",msgstr:["アップロード"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップロード"]},"Upload folders":{msgid:"Upload folders",msgstr:["フォルダのアップロード"]},"Upload from device":{msgid:"Upload from device",msgstr:["デバイスからのアップロード"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["アップロードはキャンセルされました"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["アップロードがスキップされました"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" のアップロードがスキップされました']},"Upload progress":{msgid:"Upload progress",msgstr:["アップロード進行状況"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["どのファイルを保持しますか?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"이상오, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n이상오, 2024\n"},msgstr:["Last-Translator: 이상오, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}"(은)는 금지된 파일 및 폴더 이름입니다.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"(은)는 금지된 파일 형식입니다.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['파일이나 폴더 이름에 "{segment}"(을)를 사용할 수 없습니다.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds}초 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},Cancel:{msgid:"Cancel",msgstr:["취소"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["전체 작업을 취소"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"Create new":{msgid:"Create new",msgstr:["새로 만들기"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['파일 이름은 "{segment}"(으)로 끝나야 합니다.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["잘못된 파일 이름"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New filename":{msgid:"New filename",msgstr:["새 파일 이름"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},Rename:{msgid:"Rename",msgstr:["이름 바꾸기"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["기존 파일을 모두 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["새로운 파일을 모두 선택"]},Skip:{msgid:"Skip",msgstr:["건너뛰기"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},Upload:{msgid:"Upload",msgstr:["업로드"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload folders":{msgid:"Upload folders",msgstr:["폴더 업로드"]},"Upload from device":{msgid:"Upload from device",msgstr:["장치에서 업로드"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["업로드가 취소되었습니다."]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["업로드를 건너뛰었습니다."]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 업로드를 건너뛰었습니다.']},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Edgars Andersons, 2025","Language-Team":"Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPapuass <martinsb@gmail.com>, 2024\nArmīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024\nEdgars Andersons, 2025\n"},msgstr:["Last-Translator: Edgars Andersons, 2025\nLanguage-Team: Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ir aizliegts datnes vai mapes nosaukums.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ir aizliegts datnes veids.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ir nav ļauts datnes vai mapes nosaukumā.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} nesaderīgu datņu","{count} nesaderīga datne","{count} nesaderīgas datnes"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} nesaderīgu datņu {dirname}","{count} nesaderīga datne {dirname}","{count} nesaderīgas datnes {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["Atlikušas {seconds} sekundes","Aatlikusi {seconds} sekunde","Atlikušas {seconds} sekundes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["atlicis {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["atlikušas dažas sekundes"]},assembling:{msgid:"assembling",msgstr:["sakopo"]},Cancel:{msgid:"Cancel",msgstr:["Atcelt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Atcelt visu darbību"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Atcelt augšupielādes"]},Continue:{msgid:"Continue",msgstr:["Turpināt"]},"Create new":{msgid:"Create new",msgstr:["Izveidot jaunu"]},"estimating time left":{msgid:"estimating time left",msgstr:["paredzamais atlikušais laiks"]},"Existing version":{msgid:"Existing version",msgstr:["Esošā versija"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Neizdevās apvienot gabalus"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Neizdevās augšupielādēt datni"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Datnes nosaukumi nedrīkst beigties ar "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nederīgs datnes nosaukums"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Pēdējais izmainīšanas datums nav zināms"]},New:{msgid:"New",msgstr:["Jauns"]},"New filename":{msgid:"New filename",msgstr:["Jauns datnes nosaukums"]},"New version":{msgid:"New version",msgstr:["Jauna versija"]},paused:{msgid:"paused",msgstr:["apturēta"]},"Preview image":{msgid:"Preview image",msgstr:["Priekšskatīt attēlu"]},Rename:{msgid:"Rename",msgstr:["Pārdēvēt"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Atlasīt visas izvēles rūtiņas"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Atlasīt visas esošās datnes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Atlasīt visas jaunās datnes"]},Skip:{msgid:"Skip",msgstr:["Izlaist"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Izlaist {count} datņu","Izlaist šo datni","Izlaist {count} datnes"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nezināms izmērs"]},Upload:{msgid:"Upload",msgstr:["Augšupielādēt"]},"Upload files":{msgid:"Upload files",msgstr:["Augšupielādēt datnes"]},"Upload folders":{msgid:"Upload folders",msgstr:["Augšupielādēt mapes"]},"Upload from device":{msgid:"Upload from device",msgstr:["Augšupielādēt no ierīces"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Augšupielāde tika atcelta"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Augšupielāde tika izlaista"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" augšupielāde tika izlaista']},"Upload progress":{msgid:"Upload progress",msgstr:["Augšupielādes virzība"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Kuras datnes paturēt?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu."]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"DT Navy, 2024","Language-Team":"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nDT Navy, 2024\n"},msgstr:["Last-Translator: DT Navy, 2024\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" adalah fail dan nama folder yang dilarang']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" adalah jenis fail yang dilarang']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" adalah tidak dibenarkan dalam nama fail atau folder']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} files bertindih"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail bertindih dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saat tinggal"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tinggal"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["beberapa saat lagi"]},Cancel:{msgid:"Cancel",msgstr:["batal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Batal keseluruhan operasi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["batal muat naik"]},Continue:{msgid:"Continue",msgstr:["teruskan"]},"Create new":{msgid:"Create new",msgstr:["Buat baharu"]},"estimating time left":{msgid:"estimating time left",msgstr:["jangkaan masa tinggal"]},"Existing version":{msgid:"Existing version",msgstr:["versi sedia ada"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nama fail tidak boleh berakhir dengan "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nama fail tidak sah"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tarikh terakhir diubah suai tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New filename":{msgid:"New filename",msgstr:["Nama fail baharu"]},"New version":{msgid:"New version",msgstr:["Versi baharu"]},paused:{msgid:"paused",msgstr:["Jeda"]},"Preview image":{msgid:"Preview image",msgstr:["Pratonton gambar"]},Rename:{msgid:"Rename",msgstr:["Menamakan semula"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak pilihan"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua fail yang wujud"]},"Select all new files":{msgid:"Select all new files",msgstr:["pilih semua fail baharu"]},Skip:{msgid:"Skip",msgstr:["Langkau"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Langkau fail {count}"]},"Unknown size":{msgid:"Unknown size",msgstr:["Saiz tidak diketahui"]},Upload:{msgid:"Upload",msgstr:["Muat naik"]},"Upload files":{msgid:"Upload files",msgstr:["Muat naik fail"]},"Upload folders":{msgid:"Upload folders",msgstr:["Muat naik folder"]},"Upload from device":{msgid:"Upload from device",msgstr:["Muat naik dari peranti"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Muat naik telah dibatalkan"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Muat naik telah dilangkau"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Muat naik "{folder}" telah dilangkau']},"Upload progress":{msgid:"Upload progress",msgstr:["Kemajuan muat naik"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Fail yang mana ingin disimpan?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan"]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb",json:{charset:"utf-8",headers:{"Last-Translator":"Roger Knutsen, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRoger Knutsen, 2024\n"},msgstr:["Last-Translator: Roger Knutsen, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tillatt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"Create new":{msgid:"Create new",msgstr:["Opprett ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavn må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldig filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},Rename:{msgid:"Rename",msgstr:["Omdøp"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Hopp over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Last opp mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Last opp fra enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Opplastingen er kansellert"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Opplastingen er hoppet over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Opplasting av "{folder}" er hoppet over']},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Valdnet, 2025","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPiotr Strebski <strebski@gmail.com>, 2024\nValdnet, 2025\n"},msgstr:["Last-Translator: Valdnet, 2025\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" to zabroniona nazwa pliku lub katalogu.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" jest zabronionym typem pliku.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Znak "{segment}" nie jest dozwolony w nazwie pliku lub katalogu.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},Cancel:{msgid:"Cancel",msgstr:["Anuluj"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"Create new":{msgid:"Create new",msgstr:["Utwórz nowe"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nazwy plików nie mogą kończyć się na "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nieprawidłowa nazwa pliku"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New filename":{msgid:"New filename",msgstr:["Nowa nazwa pliku"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},Rename:{msgid:"Rename",msgstr:["Zmiana nazwy"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},Skip:{msgid:"Skip",msgstr:["Pomiń"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},Upload:{msgid:"Upload",msgstr:["Wyślij"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload folders":{msgid:"Upload folders",msgstr:["Wyślij katalogi"]},"Upload from device":{msgid:"Upload from device",msgstr:["Wyślij z urządzenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Wysyłanie zostało anulowane"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Wysyłanie zostało pominięte"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Wysyłanie "{folder}" zostało pominięte']},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu katalogu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu i przeprowadzane jest rekursywne rozwiązywanie konfliktów."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"F Bausch, 2025","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\nF Bausch, 2025\n"},msgstr:["Last-Translator: F Bausch, 2025\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" é um nome de arquivo ou pasta proibido.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" é um tipo de arquivo proibido.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" não é permitido dentro de um nome de arquivo ou pasta.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} segundo restante","{seconds} segundos restantes","{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},assembling:{msgid:"assembling",msgstr:["montando"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Criar novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Falha ao montar os pedaços juntos"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Falha ao fazer o upload do arquivo"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Os nomes dos arquivos não devem terminar com "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome de arquivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de arquivo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecionar todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecionar todos os novos arquivos"]},Skip:{msgid:"Skip",msgstr:["Pular"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Pular {count} arquivo","Pular {count} arquivos","Pular {count} arquivos"]},"Skip this file":{msgid:"Skip this file",msgstr:["Pular este arquivo"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},Upload:{msgid:"Upload",msgstr:["Fazer upload"]},"Upload files":{msgid:"Upload files",msgstr:["Fazer upload de arquivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Fazer upload de pastas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Fazer upload do dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O upload foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O upload foi pulado"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['O upload de "{folder}" foi pulado']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso de upload"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta recebida é selecionada, todos os arquivos conflitantes dentro dela também serão sobrescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta recebida é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2025","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nВлад, 2024\nAlex <fedotov22091982@gmail.com>, 2024\nRoman Stepanov, 2024\nMaksim Sukharev, 2024\nАлександр, 2025\n"},msgstr:["Last-Translator: Александр, 2025\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» — это запрещенное имя файла или папки."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» — это запрещенный тип файла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» не допускается в имени файла или папки."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["осталась {seconds} секунда","осталось {seconds} секунды","осталось {seconds} секунд","осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},assembling:{msgid:"assembling",msgstr:["сборка"]},Cancel:{msgid:"Cancel",msgstr:["Отменить"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отменить операцию целиком"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"Create new":{msgid:"Create new",msgstr:["Создать новое"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Не удалось собрать части вместе"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Не удалось загрузить файл"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена файлов не должны заканчиваться на «{segment}»"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неверное имя файла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},New:{msgid:"New",msgstr:["Новый"]},"New filename":{msgid:"New filename",msgstr:["Новое имя файла"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},Rename:{msgid:"Rename",msgstr:["Переименовать"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Выбрать все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},Skip:{msgid:"Skip",msgstr:["Пропустить"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},Upload:{msgid:"Upload",msgstr:["Загрузить"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузить файлы"]},"Upload folders":{msgid:"Upload folders",msgstr:["Загрузить папки"]},"Upload from device":{msgid:"Upload from device",msgstr:["Загрузить с устройства"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Загрузка была отменена"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Загрузка была пропущена"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Загрузка «{folder}» была пропущена"]},"Upload progress":{msgid:"Upload progress",msgstr:["Прогресс загрузки"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Вы можете переименовать файл, пропустить этот файл или отменить всю операцию."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk",json:{charset:"utf-8",headers:{"Last-Translator":"Tomas Rusnak <linkermail@gmail.com>, 2024","Language-Team":"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJozef Gaal <preklady@mayday.sk>, 2024\nTomas Rusnak <linkermail@gmail.com>, 2024\n"},msgstr:["Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ je zakázaný názov súboru alebo priečinka."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je zákazaný typ súboru.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}“ je zakázané v názve súboru alebo adresára.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} súbor má konflikt","{count} súbory majú konflikt","{count} súborov má konflikt","{count} súborov má konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} súborový konflikt v {dirname}","{count} súborové konflikty v {dirname}","{count} súborových konfliktov v {dirname}","{count} súborových konfliktov v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúnd zostáva"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} zostáva"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zostáva niekoľko sekúnd"]},Cancel:{msgid:"Cancel",msgstr:["Zrušiť"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušiť nahrávanie"]},Continue:{msgid:"Continue",msgstr:["Pokračovať"]},"Create new":{msgid:"Create new",msgstr:["Vytvoriť nové"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovanie zostávajúceho času"]},"Existing version":{msgid:"Existing version",msgstr:["Existujúca verzia"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Názvy súborov nesmú končiť znakom "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný názov súboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dátum poslednej úpravy neznámy"]},New:{msgid:"New",msgstr:["Nový"]},"New filename":{msgid:"New filename",msgstr:["Nový názov súboru"]},"New version":{msgid:"New version",msgstr:["Nová verzia"]},paused:{msgid:"paused",msgstr:["pozastavené"]},"Preview image":{msgid:"Preview image",msgstr:["Náhľad obrázka"]},Rename:{msgid:"Rename",msgstr:["Premenovať"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označiť všetky výberové políčka"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},Skip:{msgid:"Skip",msgstr:["Preskočiť"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskočiť tento súbor","Preskočiť {count} súbory","Preskočiť {count} súborov","Preskočiť {count} súborov"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznáma veľkosť"]},Upload:{msgid:"Upload",msgstr:["Nahrať"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrať súbory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrať priečinky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrať zo zariadenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávanie bolo zrušené"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrávanie bolo preskočené"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nahrávanie "{folder}" bolo preskočené']},"Upload progress":{msgid:"Upload progress",msgstr:["Priebeh nahrávania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete ponechať?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru."]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Simon Bogina, 2024","Language-Team":"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJan Kraljič <jan.kraljic@patware.eu>, 2024\nSimon Bogina, 2024\n"},msgstr:["Last-Translator: Simon Bogina, 2024\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" je prepovedano ime datoteka ali mape.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je prepovedan tip datoteke.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ni dovoljeno v imenu datoteke ali mape.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["1{count} datoteka je v konfliktu","1{count} datoteki sta v konfiktu","1{count} datotek je v konfliktu","{count} datotek je v konfliktu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} datoteka je v konfiktu v {dirname}","{count} datoteki sta v konfiktu v {dirname}","{count} datotek je v konfiktu v {dirname}","{count} konfliktov datotek v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Cancel:{msgid:"Cancel",msgstr:["Prekliči"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Prekliči celotni postopek"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},Continue:{msgid:"Continue",msgstr:["Nadaljuj"]},"Create new":{msgid:"Create new",msgstr:["Ustvari nov"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjujem čas do konca"]},"Existing version":{msgid:"Existing version",msgstr:["Obstoječa različica"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Imena datotek se ne smejo končati s "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nepravilno ime datoteke"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum zadnje spremembe neznan"]},New:{msgid:"New",msgstr:["Nov"]},"New filename":{msgid:"New filename",msgstr:["Novo ime datoteke"]},"New version":{msgid:"New version",msgstr:["Nova različica"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Preview image":{msgid:"Preview image",msgstr:["Predogled slike"]},Rename:{msgid:"Rename",msgstr:["Preimenuj"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Izberi vsa potrditvena polja"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Označi vse obstoječe datoteke"]},"Select all new files":{msgid:"Select all new files",msgstr:["Označi vse nove datoteke"]},Skip:{msgid:"Skip",msgstr:["Preskoči"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskoči datoteko","Preskoči {count} datoteki","Preskoči {count} datotek","Preskoči {count} datotek"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznana velikost"]},Upload:{msgid:"Upload",msgstr:["Naloži"]},"Upload files":{msgid:"Upload files",msgstr:["Naloži datoteke"]},"Upload folders":{msgid:"Upload folders",msgstr:["Naloži mape"]},"Upload from device":{msgid:"Upload from device",msgstr:["Naloži iz naprave"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nalaganje je bilo preklicano"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nalaganje je bilo preskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nalaganje "{folder}" je bilo preskočeno']},"Upload progress":{msgid:"Upload progress",msgstr:["Napredek nalaganja"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Katere datoteke želite obdržati?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Izbrati morate vsaj eno različico vsake datoteke da nadaljujete."]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2024","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nИван Пешић, 2024\n"},msgstr:["Last-Translator: Иван Пешић, 2024\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” је забрањено име фајла или фолдера."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” је забрањен тип фајла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}” није дозвољено унутар имена фајла или фолдера."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},Cancel:{msgid:"Cancel",msgstr:["Откажи"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отказује комплетну операцију"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"Create new":{msgid:"Create new",msgstr:["Креирај ново"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена фајлова не смеју да се завршавају на „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име долазног фајла ће се додати број."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неисправно име фајла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New filename":{msgid:"New filename",msgstr:["Ново име фајла"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},Rename:{msgid:"Rename",msgstr:["Промени име"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},Skip:{msgid:"Skip",msgstr:["Прескочи"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},Upload:{msgid:"Upload",msgstr:["Отпреми"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload folders":{msgid:"Upload folders",msgstr:["Отпреми фолдере"]},"Upload from device":{msgid:"Upload from device",msgstr:["Отпреми са уређаја"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Отпремање је отказано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Отпремање је прескочено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Отпремање „{folder}”је прескочено"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2025","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2025\n"},msgstr:["Last-Translator: Magnus Höglund, 2025\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" är ett förbjudet fil- eller mappnamn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" är en förbjuden filtyp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" är inte tillåtet i ett fil- eller mappnamn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} sekunder kvar","{seconds} sekunder kvar"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},assembling:{msgid:"assembling",msgstr:["Sammanställer"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"Create new":{msgid:"Create new",msgstr:["Skapa ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Misslyckades med att sammanställa delarna"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Kunde inte ladda upp filen"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnamn får inte sluta med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ogiltigt filnamn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnamn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},Rename:{msgid:"Rename",msgstr:["Byt namn"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},Skip:{msgid:"Skip",msgstr:["Hoppa över"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},Upload:{msgid:"Upload",msgstr:["Ladda upp"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ladda upp mappar"]},"Upload from device":{msgid:"Upload from device",msgstr:["Ladda upp från enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Uppladdningen har avbrutits"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Uppladdningen har hoppats över"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Uppladdningen av "{folder}" har hoppats över']},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2025","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2025\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2025\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" dosya ya da klasör adına izin verilmiyor.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" dosya türüne izin verilmiyor.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Bir dosya ya da klasör adında "{segment}" ifadesine izin verilmiyor.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı","{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},assembling:{msgid:"assembling",msgstr:["birleştiriliyor"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"Create new":{msgid:"Create new",msgstr:["Yeni ekle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Parçalar birleştirilemedi"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Dosya yüklenemedi"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dosya adları "{segment}" ile bitmemeli.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Dosya adı geçersiz"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New filename":{msgid:"New filename",msgstr:["Yeni dosya adı"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},Rename:{msgid:"Rename",msgstr:["Yeniden adlandır"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},Skip:{msgid:"Skip",msgstr:["Atla"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["{count} dosyayı atla","{count} dosyayı atla"]},"Skip this file":{msgid:"Skip this file",msgstr:["Bu dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},Upload:{msgid:"Upload",msgstr:["Yükle"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload folders":{msgid:"Upload folders",msgstr:["Klasörleri yükle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Aygıttan yükle"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yükleme iptal edildi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yükleme atlandı"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" klasörünün yüklenmesi atlandı']},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2025","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2025\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2025\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" не є дозволеним ім\'ям файлу або каталогу.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" не є дозволеним типом файлу.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" не дозволене сполучення символів в назві файлу або каталогу.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} секунда залишилася","{seconds} секунди залишилося","{seconds} секунд залишилося","{seconds} секунд залишилося"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},assembling:{msgid:"assembling",msgstr:["збірка"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"Create new":{msgid:"Create new",msgstr:["Створити новий"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Не вдалося зібрати частинки докупи"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Не вдалося завантажити файл"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Ім\'я файлів не можуть закінчуватися на "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Недійсне ім'я файлу"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New filename":{msgid:"New filename",msgstr:["Нове ім'я файлу"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},Rename:{msgid:"Rename",msgstr:["Перейменувати"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},Skip:{msgid:"Skip",msgstr:["Пропустити"]},"Skip {count} file":{msgid:"Skip {count} file",msgid_plural:"Skip {count} files",msgstr:["Пропустити {count} файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Skip this file":{msgid:"Skip this file",msgstr:["Пропустити цей файл"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},Upload:{msgid:"Upload",msgstr:["Завантажити"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload folders":{msgid:"Upload folders",msgstr:["Завантажити каталоги"]},"Upload from device":{msgid:"Upload from device",msgstr:["Завантажити з пристрою"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Завантаження скасовано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Завантаження пропущено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Завантаження "{folder}" пропущено']},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025","Language-Team":"Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nKhurshid Ibatov <x.ibatov@dtsj.uz>, 2025\n"},msgstr:["Last-Translator: Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" taqiqlangan fayl yoki papka nomidir.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" taqiqlangan fayl turi hisoblanadi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" fayl yoki papka nomi ichida ruxsat berilmaydi.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fayllar ziddiyati"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count}fayl ziddiyatlari {dirname} da"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["{seconds} soniya qoldi"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} qoldi"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir necha soniya qoldi"]},assembling:{msgid:"assembling",msgstr:["yig'ish"]},Cancel:{msgid:"Cancel",msgstr:["Bekor qilish"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yuklashni bekor qilish"]},Continue:{msgid:"Continue",msgstr:["Davom eting"]},"Create new":{msgid:"Create new",msgstr:["Yangi yaratish"]},"estimating time left":{msgid:"estimating time left",msgstr:["qolgan vaqtni hisoblash"]},"Existing version":{msgid:"Existing version",msgstr:["Mavjud versiya"]},"Failed to assemble the chunks together":{msgid:"Failed to assemble the chunks together",msgstr:["Bo'laklarni birlashtirib bo'lmadi"]},"Failed to upload the file":{msgid:"Failed to upload the file",msgstr:["Fayl yuklanmadi"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Fayl nomlari bilan tugamasligi kerak "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Fayl nomi noto‘g‘ri"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},New:{msgid:"New",msgstr:["Yangi"]},"New filename":{msgid:"New filename",msgstr:["Yangi nom faylga"]},"New version":{msgid:"New version",msgstr:["Yangi versiya"]},paused:{msgid:"paused",msgstr:["tanaffus"]},"Preview image":{msgid:"Preview image",msgstr:["Rasmni oldindan ko'rish"]},Rename:{msgid:"Rename",msgstr:["Qayta nomlash"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},"Select all new files":{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},Skip:{msgid:"Skip",msgstr:["Oʻtkazib yuborish"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Oʻtkazib yuborish {count} fayllarini"]},"Unknown size":{msgid:"Unknown size",msgstr:["Noma'lum o'lcham"]},Upload:{msgid:"Upload",msgstr:["Yuklash"]},"Upload files":{msgid:"Upload files",msgstr:["Fayllarni yuklash"]},"Upload folders":{msgid:"Upload folders",msgstr:["Jildlarni yuklash"]},"Upload from device":{msgid:"Upload from device",msgstr:["Qurilmadan yuklash"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yuklash bekor qilindi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yuklash oʻtkazib yuborildi"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:[' "{folder}" ni yuklash bekor qilindi']},"Upload progress":{msgid:"Upload progress",msgstr:["Yuklash jarayoni"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Gloryandel, 2024","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGloryandel, 2024\n"},msgstr:["Last-Translator: Gloryandel, 2024\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是被禁止的文件名或文件夹名。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是被禁止的文件类型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允许包含在文件名或文件夹名中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整个操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"Create new":{msgid:"Create new",msgstr:["新建"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["服务端版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['文件名不得以 "{segment}" 结尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果同时选择两个版本,则上传文件的名称中将添加一个数字。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["无效文件名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},New:{msgid:"New",msgstr:["新建"]},"New filename":{msgid:"New filename",msgstr:["新文件名"]},"New version":{msgid:"New version",msgstr:["上传版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},Rename:{msgid:"Rename",msgstr:["重命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["保留所有服务端版本"]},"Select all new files":{msgid:"Select all new files",msgstr:["保留所有上传版本"]},Skip:{msgid:"Skip",msgstr:["跳过"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},Upload:{msgid:"Upload",msgstr:["上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Upload folders":{msgid:"Upload folders",msgstr:["上传文件夹"]},"Upload from device":{msgid:"Upload from device",msgstr:["从设备上传"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上传已取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上传已跳过"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['已跳过上传"{folder}"']},"Upload progress":{msgid:"Upload progress",msgstr:["上传进度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以重命名文件、跳过此文件或取消整个操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择保留一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2025","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nCafé Tango, 2025\n"},msgstr:["Last-Translator: Café Tango, 2025\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是禁止使用的檔案或資料夾名稱。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是禁止使用的檔案類型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允許出現在檔案或資料夾名稱中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgid_plural:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},assembling:{msgid:"assembling",msgstr:["組裝"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"Create new":{msgid:"Create new",msgstr:["創建新"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"Failed assembling the chunks together":{msgid:"Failed assembling the chunks together",msgstr:["組裝這些部分時失敗"]},"Failed uploading the file":{msgid:"Failed uploading the file",msgstr:["上傳文件失敗"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['檔案名不得以 "{segment}" 結尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["若您選取兩個版本,傳入檔案的名稱將會新增編號。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無效的檔案名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},New:{msgid:"New",msgstr:["新增"]},"New filename":{msgid:"New filename",msgstr:["新檔案名"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},Rename:{msgid:"Rename",msgstr:["重新命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},Skip:{msgid:"Skip",msgstr:["跳過"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},Upload:{msgid:"Upload",msgstr:["上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload folders":{msgid:"Upload folders",msgstr:["上傳資料夾"]},"Upload from device":{msgid:"Upload from device",msgstr:["從裝置上傳"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上傳已被取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上傳已被跳過"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 的上傳已被跳過']},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以選擇重新命名檔案、跳過此檔案或取消整個操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>S.addTranslation(e.locale,e.json)));const L=S.build(),N=L.ngettext.bind(L),F=L.gettext.bind(L);class U extends Error{constructor(e){super(F("Upload has been cancelled"),{cause:e})}}const E=(0,h.YK)().setApp("@nextcloud/upload").detectUser().build();async function I(e,t,s){const i={headers:{},onUploadProgress:()=>{},onUploadRetry:()=>{},retries:5,...s};let n;return n=t instanceof Blob?t:await t(),i.destinationFile&&(i.headers.Destination=i.destinationFile),i.headers["Content-Type"]||(i.headers["Content-Type"]="application/octet-stream"),await c.Ay.request({method:"PUT",url:e,data:n,signal:i.signal,onUploadProgress:i.onUploadProgress,headers:i.headers,"axios-retry":{retries:i.retries,retryDelay:(e,t)=>(0,p.Nv)(e,t,1e3),retryCondition:e=>507!==e.status&&(423===e.status||(0,p.Gp)(e)),onRetry:i.onUploadRetry}})}(0,p.Ay)(c.Ay,{retries:0});const P=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},z=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var B=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(B||{});class D{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,i){const n=Math.min(z()>0?Math.ceil(s/z()):1,1e4);this._source=e,this._isChunked=t&&z()>0&&n>1,this._chunks=this._isChunked?n:1,this._size=s,this._file=i,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}}const R=e=>"FileSystemFileEntry"in window&&e instanceof FileSystemFileEntry,O=e=>"FileSystemEntry"in window&&e instanceof FileSystemEntry;class j extends File{_originalName;_path;_children;constructor(e){super([],(0,r.P8)(e),{type:"httpd/unix-directory",lastModified:0}),this._children=new Map,this._originalName=(0,r.P8)(e),this._path=e}get size(){return this.children.reduce(((e,t)=>e+t.size),0)}get lastModified(){return this.children.reduce(((e,t)=>Math.max(e,t.lastModified)),0)}get originalName(){return this._originalName}get children(){return Array.from(this._children.values())}get webkitRelativePath(){return this._path}getChild(e){return this._children.get(e)??null}async addChildren(e){for(const t of e)await this.addChild(t)}async addChild(e){const t=this._path&&`${this._path}/`;if(R(e))e=await new Promise(((t,s)=>e.file(t,s)));else if("FileSystemDirectoryEntry"in window&&e instanceof FileSystemDirectoryEntry){const s=e.createReader(),i=await new Promise(((e,t)=>s.readEntries(e,t))),n=new j(`${t}${e.name}`);return await n.addChildren(i),void this._children.set(e.name,n)}const s=e.webkitRelativePath??e.name;if(s.includes("/")){if(!s.startsWith(this._path))throw new Error(`File ${s} is not a child of ${this._path}`);const i=s.slice(t.length),n=(0,r.P8)(i);if(n===i)this._children.set(n,e);else{const s=i.slice(0,i.indexOf("/"));if(this._children.has(s))await this._children.get(s).addChild(e);else{const i=new j(`${t}${s}`);await i.addChild(e),this._children.set(s,i)}}}else this._children.set(e.name,e)}}class M extends v.m{_done=0;_total=0;_progress=0;_status=0;_startTime=-1;_elapsedTime=0;_speed=-1;_eta=1/0;_cutoffTime=2.5;constructor(e={}){super(),e.start&&this.resume(),e.total&&this.update(0,e.total),this._cutoffTime=e.cutoffTime??2.5}add(e){this.update(this._done+e)}update(e,t){if(2!==this.status)return;t&&t>0&&(this._total=t);const s=e-this._done,i=(Date.now()-this._startTime)/1e3;this._startTime=Date.now(),this._elapsedTime+=i,this._done=e,this._progress=this._done/this._total;const n=this._cutoffTime+i;if(this._elapsedTime>n){const e=i/(i+1/this._cutoffTime),t=this._done-s+(1-e)*s;this._speed=Math.round(t/this._elapsedTime)}else if(-1===this._speed&&this._elapsedTime>i){const t=(this._total-e)/(e/this._elapsedTime);(this._eta!==1/0||t<=2*this._cutoffTime)&&(this._eta=t)}this._speed>0&&(this._eta=Math.round((this._total-this._done)/this._speed)),this.dispatchTypedEvent("update",new CustomEvent("update",{cancelable:!1}))}reset(){this._done=0,this._total=0,this._progress=0,this._elapsedTime=0,this._eta=1/0,this._speed=-1,this._startTime=-1,this._status=0,this.dispatchTypedEvent("reset",new CustomEvent("reset"))}pause(){2===this._status&&(this._status=1,this._elapsedTime+=(Date.now()-this._startTime)/1e3,this.dispatchTypedEvent("pause",new CustomEvent("pause")))}resume(){2!==this._status&&(this._startTime=Date.now(),this._status=2,this.dispatchTypedEvent("resume",new CustomEvent("resume")))}get status(){return this._status}get progress(){return Math.round(1e4*this._progress)/100}get time(){return this._eta}get timeReadable(){if(this._eta===1/0)return F("estimating time left");if(this._eta<10)return F("a few seconds left");if(this._eta<60)return N("{seconds} seconds left","{seconds} seconds left",this._eta,{seconds:this._eta});const e=String(Math.floor(this._eta/3600)).padStart(2,"0"),t=String(Math.floor(this._eta%3600/60)).padStart(2,"0"),s=String(this._eta%60).padStart(2,"0");return F("{time} left",{time:`${e}:${t}:${s}`})}get speed(){return this._speed}get speedReadable(){return this._speed>0?`${(0,o.v7)(this._speed,!0)}∕s`:""}}var V=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(V||{});class ${_destinationFolder;_isPublic;_customHeaders;_uploadQueue=[];_jobQueue=new g.A({concurrency:(0,d.F)().files?.chunked_upload?.max_parallel_count??5});_queueSize=0;_queueProgress=0;_queueStatus=0;_eta=new M;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,this._customHeaders={},!t){const s=`${o.PY}${o.lJ}`;let i;if(e)i="anonymous";else{const e=(0,a.HW)()?.uid;if(!e)throw new Error("User is not logged in");i=e}t=new o.vd({id:0,owner:i,permissions:o.aX.ALL,root:o.lJ,source:s})}this.destination=t,E.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:z()})}get destination(){return this._destinationFolder}set destination(e){if(!e||e.type!==o.pt.Folder||!e.source)throw new Error("Invalid destination folder");E.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get customHeaders(){return structuredClone(this._customHeaders)}setCustomHeader(e,t=""){this._customHeaders[e]=t}deleteCustomerHeader(e){delete this._customHeaders[e]}get queue(){return this._uploadQueue}reset(){this._eta.reset(),0===this._uploadQueue.length&&0===this._jobQueue.size||(this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0,E.debug("Uploader state reset"))}pause(){this._eta.pause(),this._jobQueue.pause(),this._queueStatus=2,this.updateStats(),E.debug("Uploader paused")}start(){this._eta.resume(),this._jobQueue.start(),this._queueStatus=1,this.updateStats(),E.debug("Uploader resumed")}get eta(){return this._eta}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);if(this._eta.update(t,e),this._queueSize=e,this._queueProgress=t,2!==this._queueStatus){const e=this._uploadQueue.find((({status:e})=>[B.INITIALIZED,B.UPLOADING,B.ASSEMBLING].includes(e)));this._jobQueue.size>0||e?this._queueStatus=1:(this.eta.reset(),this._queueStatus=0)}}addNotifier(e){this._notifiers.push(e)}_notifyAll(e){for(const t of this._notifiers)try{t(e)}catch(t){E.warn("Error in upload notifier",{error:t,source:e.source})}}batchUpload(e,t,s){return s||(s=async e=>e),new m.A((async(i,n,a)=>{const r=new j("");await r.addChildren(t);const l=`${this.root.replace(/\/$/,"")}/${e.replace(/^\//,"")}`,d=new D(l,!1,0,r);d.status=B.UPLOADING,this._uploadQueue.push(d),E.debug("Starting new batch upload",{target:l});try{const t=(0,o.H4)(this.root,this._customHeaders),n=this.uploadDirectory(e,r,s,t);a((()=>n.cancel()));const l=await n;d.status=B.FINISHED,i(l)}catch(e){(0,c.FZ)(e)||e instanceof U?(E.info("Upload cancelled by user",{error:e}),d.status=B.CANCELLED,n(new U(e))):(E.error("Error in batch upload",{error:e}),d.status=B.FAILED,n(e))}finally{this._notifyAll(d),this.updateStats()}}))}createDirectory(e,t,s){const i=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,""),n=`${this.root.replace(/\/$/,"")}/${i.replace(/^\//,"")}`;if(!t.name)throw new Error("Can not create empty directory");const a=new D(n,!1,0,t);return this._uploadQueue.push(a),new m.A((async(e,n,o)=>{const r=new AbortController;o((()=>r.abort())),a.signal.addEventListener("abort",(()=>n(F("Upload has been cancelled")))),await this._jobQueue.add((async()=>{a.status=B.UPLOADING;try{await s.createDirectory(i,{signal:r.signal}),e(a)}catch(s){(0,c.FZ)(s)||s instanceof U?(a.status=B.CANCELLED,n(new U(s))):s&&"object"==typeof s&&"status"in s&&405===s.status?(E.debug("Directory already exists, writing into it",{directory:t.name}),a.status=B.FINISHED,e(a)):(a.status=B.FAILED,n(s))}finally{this._notifyAll(a),this.updateStats()}}))}))}uploadDirectory(e,t,s,i){const n=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,"");return new m.A((async(a,o,r)=>{const l=new AbortController;r((()=>l.abort()));const d=await s(t.children,n);if(!1===d)return E.debug("Upload canceled by user",{directory:t}),void o(new U("Conflict resolution cancelled by user"));if(0===d.length&&t.children.length>0)return E.debug("Skipping directory, as all files were skipped by user",{directory:t}),void a([]);const c=[],m=[];l.signal.addEventListener("abort",(()=>{c.forEach((e=>e.cancel())),m.forEach((e=>e.cancel()))})),E.debug("Start directory upload",{directory:t});try{t.name&&(m.push(this.createDirectory(e,t,i)),await m.at(-1));for(const e of d)e instanceof j?c.push(this.uploadDirectory(n,e,s,i)):m.push(this.upload(`${n}/${e.name}`,e));a([await Promise.all(m),...await Promise.all(c)].flat())}catch(e){l.abort(e),o(e)}}))}upload(e,t,s,n=5){const o=`${(s=s||this.root).replace(/\/$/,"")}/${e.replace(/^\//,"")}`,{origin:l}=new URL(o),g=l+(0,r.O0)(o.slice(l.length));return this.eta.resume(),E.debug(`Uploading ${t.name} to ${g}`),new m.A((async(e,s,r)=>{R(t)&&(t=await new Promise((e=>t.file(e,s))));const l=t,m=(0,d.F)().dav?.public_shares_chunking??!1,u=z("size"in l?l.size:void 0),h=this._isPublic&&!m||0===u||"size"in l&&l.size<u,v=new D(o,!h,l.size,l);if(this._uploadQueue.push(v),this.updateStats(),r(v.cancel),h){E.debug("Initializing regular upload",{file:l,upload:v});const t=await P(l,0,v.size),i=async()=>{try{v.response=await I(g,t,{signal:v.signal,onUploadProgress:({bytes:e})=>{v.uploaded+=.9*e,this.updateStats()},onUploadRetry:()=>{v.uploaded=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(l),"Content-Type":l.type}}),v.uploaded=v.size,this.updateStats(),E.debug(`Successfully uploaded ${l.name}`,{file:l,upload:v}),e(v)}catch(e){if((0,c.FZ)(e)||e instanceof U)return v.status=B.CANCELLED,void s(new U(e));e?.response&&(v.response=e.response),v.status=B.FAILED,E.error(`Failed uploading ${l.name}`,{error:e,file:l,upload:v}),s(F("Failed to upload the file"))}this._notifyAll(v)};this._jobQueue.add(i),this.updateStats()}else{E.debug("Initializing chunked upload",{file:l,upload:v});const t=await async function(e,t=5,s=!1){let n;n=s?`${(0,f.$_)()}/public.php/dav/uploads/${(0,i.G)()}`:(0,f.dC)(`dav/uploads/${(0,a.HW)()?.uid}`);const o=`${n}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,r=e?{Destination:e}:void 0;return await c.Ay.request({method:"MKCOL",url:o,headers:r,"axios-retry":{retries:t,retryDelay:(e,t)=>(0,p.Nv)(e,t,1e3)}}),E.debug("Created temporary upload workspace",{url:o}),o}(g,n,this._isPublic),o=[];for(let e=0;e<v.chunks;e++){const s=e*u,i=Math.min(s+u,v.size),a=()=>P(l,s,u),r=()=>{let o=0;return I(`${t}/${e+1}`,a,{signal:v.signal,destinationFile:g,retries:n,onUploadProgress:({bytes:e})=>{const t=.9*e;o+=t,v.uploaded+=t,this.updateStats()},onUploadRetry:()=>{v.uploaded-=o,o=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(l),"OC-Total-Length":l.size,"Content-Type":"application/octet-stream"}}).then((()=>{v.uploaded+=i-s-o,this.updateStats()})).catch((t=>{if(507===t?.response?.status)throw E.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:v}),v.cancel(),v.status=B.FAILED,t;throw(0,c.FZ)(t)||(E.error(`Chunk ${e+1} ${s} - ${i} uploading failed`,{error:t,upload:v}),v.cancel(),v.status=B.FAILED),t}))};o.push(this._jobQueue.add(r))}const r=async()=>{try{await Promise.all(o),v.status=B.ASSEMBLING,this.updateStats(),v.response=await c.Ay.request({method:"MOVE",url:`${t}/.file`,headers:{...this._customHeaders,...this._mtimeHeader(l),"OC-Total-Length":l.size,Destination:g}}),v.status=B.FINISHED,this.updateStats(),E.debug(`Successfully uploaded ${l.name}`,{file:l,upload:v}),e(v)}catch(e){(0,c.FZ)(e)||e instanceof U?(v.status=B.CANCELLED,s(new U(e))):(v.status=B.FAILED,s(F("Failed to assemble the chunks together"))),c.Ay.request({method:"DELETE",url:`${t}`})}finally{this._notifyAll(v)}};this._jobQueue.add(r)}return this._jobQueue.onIdle().then((()=>this.reset())),v}))}_mtimeHeader(e){const t=Math.floor(e.lastModified/1e3);return t>0?{"X-OC-Mtime":t}:{}}}function W(e,t,s,i,n,a,o,r){var l="function"==typeof e?e.options:e;return t&&(l.render=t,l.staticRenderFns=s,l._compiled=!0),a&&(l._scopeId="data-v-"+a),{exports:e,options:l}}const H=W({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,q=W({name:"FolderUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,Y=W({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,G=W({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports;function K(e){const t=(0,n.$V)((()=>Promise.all([s.e(4208),s.e(1656)]).then(s.bind(s,11656)))),{promise:i,reject:a,resolve:r}=Promise.withResolvers();return(0,T.Ss)(t,{error:e,validateFilename:o.KT},((...e)=>{const[{skip:t,rename:s}]=e;t?r(!1):s?r(s):a()})),i}function Q(e,t){return J(e,t).length>0}function J(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t="basename"in e?e.basename:e.name;return-1!==s.indexOf(t)}))}const X=W((0,n.pM)({name:"UploadPicker",components:{IconCancel:H,IconFolderUpload:q,IconPlus:Y,IconUpload:G,NcActionButton:A.A,NcActionCaption:b.A,NcActionSeparator:y.A,NcActions:C.A,NcButton:k.A,NcIconSvgWrapper:_.A,NcProgressBar:x.A},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},primary:{type:Boolean,default:!1},destination:{type:o.vd,default:void 0},allowFolders:{type:Boolean,default:!1},content:{type:[Array,Function],default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},setup:()=>({t:F,progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`}),data:()=>({newFileMenuEntries:[],openedMenu:!1,uploadManager:Z()}),computed:{menuEntriesUpload(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.UploadFromDevice))},menuEntriesNew(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.CreateNew))},menuEntriesOther(){return this.newFileMenuEntries.filter((e=>e.category===o.a7.Other))},canUploadFolders(){return this.allowFolders&&"webkitdirectory"in document.createElement("input")},queue(){return this.uploadManager.queue},hasFailure(){return this.queue.some((e=>e.status===B.FAILED))},isAssembling(){return this.queue.some((e=>e.status===B.ASSEMBLING))},isUploading(){return this.queue.some((e=>e.status!==B.CANCELLED))},isOnlyAssembling(){return this.isAssembling&&this.queue.every((e=>0===e.size||e.status===B.ASSEMBLING||e.status===B.FINISHED))},isPaused(){return this.uploadManager.info?.status===V.PAUSED},buttonLabel(){return this.noMenu?F("Upload"):F("New")},haveMenu(){return!((this.noMenu||0===this.newFileMenuEntries.length)&&!this.canUploadFolders)}},watch:{allowFolders:{immediate:!0,handler(){"function"!=typeof this.content&&this.allowFolders&&E.error("[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function")}},destination(e){this.setDestination(e)},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),(0,w.C)("u",this.onKeyDown,{stop:!0,prevent:!0,shift:!0}),(0,w.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),E.debug("UploadPicker initialised")},methods:{etaTimeAndSpeed(){const e=this.uploadManager.eta.speedReadable;return e?`${this.uploadManager.eta.timeReadable} (${e})`:this.uploadManager.eta.timeReadable},async onClick(e){e.handler(this.destination,await this.getContent().catch((()=>[])))},onTriggerPick(e=!1){const t=this.$refs.input;this.canUploadFolders&&(t.webkitdirectory=e),this.$nextTick((()=>t.click()))},async getContent(e){return Array.isArray(this.content)?this.content:await this.content(e)},async onPick(){const e=this.$refs.input,t=e.files?Array.from(e.files):[];try{await this.uploadManager.batchUpload("",t,(s=this.getContent,async(e,t)=>{try{const i=await s(t).catch((()=>[])),n=J(e,i);if(n.length>0){const{selected:s,renamed:a}=await ee(t,n,i,{recursive:!0});e=[...e.filter((e=>!n.includes(e))),...s,...a]}const a=[];for(const t of e)try{(0,o.KT)(t.name),a.push(t)}catch(s){if(!(s instanceof o.di))throw E.error(`Unexpected error while validating ${t.name}`,{error:s}),s;let i=await K(s);!1!==i&&(i=(0,o.E6)(i,e.map((e=>e.name))),Object.defineProperty(t,"name",{value:i}),a.push(t))}if(0===a.length&&e.length>0){const e=(0,r.P8)(t);(0,T.cf)(e?F('Upload of "{folder}" has been skipped',{folder:e}):F("Upload has been skipped"))}return a}catch(e){return E.debug("Upload has been cancelled",{error:e}),(0,T.I9)(F("Upload has been cancelled")),!1}}))}catch(e){E.debug("Error while uploading",{error:e})}finally{this.resetForm()}var s},resetForm(){const e=this.$refs.form;e?.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.resetForm()},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,o.m1)(e)):E.debug("Invalid destination")},onUploadCompletion(e){e.status===B.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)},onKeyDown(e){if("u"===e.key){if(this.haveMenu)return void(this.openedMenu=!0);this.onTriggerPick()}"Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1)}}}),(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.haveMenu?t("NcActions",{attrs:{"aria-label":e.buttonLabel,"menu-name":e.buttonLabel,open:e.openedMenu,type:e.primary?"primary":"secondary"},on:{"update:open":function(t){e.openedMenu=t}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[t("NcActionCaption",{attrs:{name:e.t("Upload from device")}}),t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file","close-after-click":!0},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,337456192)},[e._v(" "+e._s(e.t("Upload files"))+" ")]),e.canUploadFolders?t("NcActionButton",{attrs:{"close-after-click":"","data-cy-upload-picker-add-folders":"","data-cy-upload-picker-menu-entry":"upload-folder"},on:{click:function(t){return e.onTriggerPick(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconFolderUpload",{staticStyle:{color:"var(--color-primary-element)"},attrs:{size:20}})]},proxy:!0}],null,!1,1037549157)},[e._v(" "+e._s(e.t("Upload folders"))+" ")]):e._e(),e.noMenu?e._e():e._l(e.menuEntriesUpload,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])})),!e.noMenu&&e.menuEntriesNew.length>0?[t("NcActionSeparator"),t("NcActionCaption",{attrs:{name:e.t("Create new")}}),e._l(e.menuEntriesNew,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e(),!e.noMenu&&e.menuEntriesOther.length>0?[t("NcActionSeparator"),e._l(e.menuEntriesOther,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e()],2):t("NcButton",{attrs:{"aria-label":e.buttonLabel,disabled:e.disabled,"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file",type:e.primary?"primary":"secondary"},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0},e.isUploading?null:{key:"default",fn:function(){return[e._v(" "+e._s(e.buttonLabel)+" ")]},proxy:!0}],null,!0)}),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.t("Upload progress"),"aria-describedby":e.progressTimeId,"data-cy-upload-picker-progress":"",error:e.hasFailure,value:e.uploadManager.eta.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId,"data-cy-upload-picker-progress-label":""}},[e.isPaused?t("span",[e._v(" "+e._s(e.t("paused"))+" ")]):e.isOnlyAssembling?t("span",[e._v(" "+e._s(e.t("assembling"))+" ")]):t("span",{attrs:{title:e.etaTimeAndSpeed()}},[e._v(" "+e._s(e.uploadManager.eta.timeReadable)+" "),e.uploadManager.eta.speedReadable&&e.uploadManager.eta.time>=60?t("span",[e._v(" ("+e._s(e.uploadManager.eta.speedReadable)+") ")]):e._e()])])],1),e.isUploading&&!e.isOnlyAssembling?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.t("Cancel uploads"),"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCancel",{attrs:{size:20}})]},proxy:!0}],null,!1,3076329829)}):e._e(),t("input",{ref:"input",staticClass:"hidden-visually",attrs:{accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":"",type:"file"},on:{change:e.onPick}})],1):e._e()}),[],0,0,"12e6e354").exports;function Z(e=(0,i.f)(),t=!1){return(t||void 0===window._nc_uploader)&&(window._nc_uploader=new $(e)),window._nc_uploader}async function ee(e,t,i,a){const o=(0,n.$V)((()=>Promise.all([s.e(4208),s.e(3485)]).then(s.bind(s,13485))));return new Promise(((s,r)=>{const l=new n.Ay({name:"ConflictPickerRoot",render:n=>n(o,{props:{dirname:e,conflicts:t,content:i,recursiveUpload:!0===a?.recursive},on:{submit(e){s(e),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)},cancel(e){r(e??new Error("Canceled")),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)}}})});l.$mount(),document.body.appendChild(l.$el)}))}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=(t,s,i,n)=>{if(!s){var a=1/0;for(c=0;c<e.length;c++){s=e[c][0],i=e[c][1],n=e[c][2];for(var r=!0,l=0;l<s.length;l++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](s[l])))?s.splice(l--,1):(r=!1,n<a&&(a=n));if(r){e.splice(c--,1);var d=i();void 0!==d&&(t=d)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[s,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 s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,s)=>(o.f[s](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{640:"b2fa23a809053c6305c5",1656:"05d90ab05fafdbaeed35",3485:"b3e801849a79b5a466ec",5771:"a4e2a98efcfb7393c5bd",5810:"8dfb2392d7107957a510",7432:"126e4e5eedf7af9a92fc",7807:"382c331365e38d2fb775"}[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),s={},i="nextcloud:",o.l=(e,t,n,a)=>{if(s[e])s[e].push(t);else{var r,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==i+n){r=m;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,o.nc&&r.setAttribute("nonce",o.nc),r.setAttribute("data-webpack",i+n),r.src=e),s[e]=[t];var g=(t,i)=>{r.onerror=r.onload=null,clearTimeout(u);var n=s[e];if(delete s[e],r.parentNode&&r.parentNode.removeChild(r),n&&n.forEach((e=>e(i))),t)return t(i)},u=setTimeout(g.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=g.bind(null,r.onerror),r.onload=g.bind(null,r.onload),l&&document.head.appendChild(r)}},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=2882,(()=>{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 s=t.getElementsByTagName("script");if(s.length)for(var i=s.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=s[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={2882:0,5810:0};o.f.j=(t,s)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)s.push(i[2]);else{var n=new Promise(((s,n)=>i=e[t]=[s,n]));s.push(i[2]=n);var a=o.p+o.u(t),r=new Error;o.l(a,(s=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=s&&("load"===s.type?"missing":s.type),a=s&&s.target&&s.target.src;r.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",r.name="ChunkLoadError",r.type=n,r.request=a,i[1](r)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,s)=>{var i,n,a=s[0],r=s[1],l=s[2],d=0;if(a.some((t=>0!==e[t]))){for(i in r)o.o(r,i)&&(o.m[i]=r[i]);if(l)var c=l(o)}for(t&&t(s);d<a.length;d++)n=a[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),o.nc=void 0;var r=o.O(void 0,[4208],(()=>o(10673)));r=o.O(r)})(); +//# sourceMappingURL=files-main.js.map?v=95e077c327819bd3582c
\ No newline at end of file diff --git a/dist/files-main.js.map b/dist/files-main.js.map index 60f2e837627..ff5cf72aba1 100644 --- a/dist/files-main.js.map +++ b/dist/files-main.js.map @@ -1 +1 @@ -{"version":3,"file":"files-main.js?v=84b9cc79edeaffeda220","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&prod&lang=scss","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files_trashbin/src/files_views/columns.ts","webpack:///nextcloud/apps/files_trashbin/src/services/client.ts","webpack:///nextcloud/apps/files_trashbin/src/services/trashbin.ts","webpack:///nextcloud/apps/files_trashbin/src/files_views/trashbinView.ts","webpack:///nextcloud/apps/files/src/actions/deleteUtils.ts","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=template&id=209aff25","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPie.vue?421f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=template&id=90a70766","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?a381","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack://nextcloud/./apps/files/src/views/Settings.vue?b871","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue","webpack:///nextcloud/apps/files/src/composables/useNavigation.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationItem.vue?172f","webpack:///nextcloud/apps/files/src/filters/FilenameFilter.ts","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/composables/useFilenameFilter.ts","webpack://nextcloud/./apps/files/src/views/Navigation.vue?e289","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountPlus.vue?2818","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=template&id=53a26aa0","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Reload.vue?2e35","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=template&id=39a07256","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?5dae","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=template&id=64cece03","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGrid.vue?4e55","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=template&id=672ea5c8","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/composables/useFileListHeaders.ts","webpack:///nextcloud/apps/files/src/composables/useFileListWidth.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?2c1b","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrayArrowDown.vue?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=5dbf2618","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?760a","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/renaming.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/apps/files/src/mixins/actionsMixin.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?2241","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?0ccc","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryCheckbox.vue?a18b","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=15fca808","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?dbe9","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?36f6","webpack:///nextcloud/apps/files/src/utils/dragUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntryMixin.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/utils/permissions.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue","webpack:///nextcloud/apps/files/src/utils/filenameValidity.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?db86","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderOpen.vue?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=ae0c5fc0","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Key.vue?157c","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=template&id=499b3412","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Network.vue?11eb","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=template&id=7bf2ec80","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Tag.vue?6116","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=template&id=356230e0","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/PlayCircle.vue?0c26","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=template&id=3cc1493c","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?1937","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?949d","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?a84b","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?9c70","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?ac4e","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?055a","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e7ad","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?c823","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?5a78","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?cd1b","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?c927","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?742c","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/HotKeysService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=08f77d70&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=66f12ae6&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=9a0994e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=084c464a&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DdKmqUaK.mjs","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};","// 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, `.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:\"\";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: var(--default-clickable-area);\\n\\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Star icon in the top right\\n\\t.files-list__row-icon-favorite {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: var(--font-size-small);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\\n@media screen and (max-width: 768px) {\\n\\t// there is no mtime\\n\\t.files-list--grid tbody.files-list__tbody {\\n\\t\\t--mtime-height: 0px;\\n\\n\\t\\t// so we move the action to the name\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\tinset-block-end: var(--item-padding);\\n\\t\\t}\\n\\n\\t\\t// and we need to keep space on the name for the actions\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tpadding-inline-end: var(--clickable-area) !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const getPinia = () => {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Column, Node } from '@nextcloud/files';\nimport { formatRelativeTime, getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n';\nimport { dirname } from '@nextcloud/paths';\nimport Vue from 'vue';\nimport NcUserBubble from '@nextcloud/vue/components/NcUserBubble';\nexport const originalLocation = new Column({\n id: 'files_trashbin--original-location',\n title: t('files_trashbin', 'Original location'),\n render(node) {\n const originalLocation = parseOriginalLocation(node);\n const span = document.createElement('span');\n span.title = originalLocation;\n span.textContent = originalLocation;\n return span;\n },\n sort(nodeA, nodeB) {\n const locationA = parseOriginalLocation(nodeA);\n const locationB = parseOriginalLocation(nodeB);\n return locationA.localeCompare(locationB, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' });\n },\n});\nexport const deletedBy = new Column({\n id: 'files_trashbin--deleted-by',\n title: t('files_trashbin', 'Deleted by'),\n render(node) {\n const { userId, displayName, label } = parseDeletedBy(node);\n if (label) {\n const span = document.createElement('span');\n span.textContent = label;\n return span;\n }\n const UserBubble = Vue.extend(NcUserBubble);\n const propsData = {\n size: 32,\n user: userId ?? undefined,\n displayName: displayName ?? userId,\n };\n const userBubble = new UserBubble({ propsData }).$mount().$el;\n return userBubble;\n },\n sort(nodeA, nodeB) {\n const deletedByA = parseDeletedBy(nodeA);\n const deletedbyALabel = deletedByA.label ?? deletedByA.displayName ?? deletedByA.userId;\n const deletedByB = parseDeletedBy(nodeB);\n const deletedByBLabel = deletedByB.label ?? deletedByB.displayName ?? deletedByB.userId;\n // label is set if uid and display name are unset - if label is unset at least uid or display name is set.\n return deletedbyALabel.localeCompare(deletedByBLabel, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' });\n },\n});\nexport const deleted = new Column({\n id: 'files_trashbin--deleted',\n title: t('files_trashbin', 'Deleted'),\n render(node) {\n const deletionTime = node.attributes?.['trashbin-deletion-time'] || ((node?.mtime?.getTime() ?? 0) / 1000);\n const span = document.createElement('span');\n if (deletionTime) {\n const formatter = Intl.DateTimeFormat([getCanonicalLocale()], { dateStyle: 'long', timeStyle: 'short' });\n const timestamp = new Date(deletionTime * 1000);\n span.title = formatter.format(timestamp);\n span.textContent = formatRelativeTime(timestamp, { ignoreSeconds: t('files', 'few seconds ago') });\n return span;\n }\n // Unknown deletion time\n span.textContent = t('files_trashbin', 'A long time ago');\n return span;\n },\n sort(nodeA, nodeB) {\n // deletion time is a unix timestamp while mtime is a JS Date -> we need to align the numbers (seconds vs milliseconds)\n const deletionTimeA = nodeA.attributes?.['trashbin-deletion-time'] || ((nodeA?.mtime?.getTime() ?? 0) / 1000);\n const deletionTimeB = nodeB.attributes?.['trashbin-deletion-time'] || ((nodeB?.mtime?.getTime() ?? 0) / 1000);\n return deletionTimeB - deletionTimeA;\n },\n});\n/**\n * Get the original file location of a trashbin file.\n *\n * @param node The node to parse\n */\nfunction parseOriginalLocation(node) {\n const path = stringOrNull(node.attributes?.['trashbin-original-location']);\n if (!path) {\n return t('files_trashbin', 'Unknown');\n }\n const dir = dirname(path);\n if (dir === path) { // Node is in root folder\n return t('files_trashbin', 'All files');\n }\n return dir.replace(/^\\//, '');\n}\n/**\n * Parse a trashbin file to get information about the user that deleted the file.\n *\n * @param node The node to parse\n */\nfunction parseDeletedBy(node) {\n const userId = stringOrNull(node.attributes?.['trashbin-deleted-by-id']);\n const displayName = stringOrNull(node.attributes?.['trashbin-deleted-by-display-name']);\n let label;\n const currentUserId = getCurrentUser()?.uid;\n if (userId === currentUserId) {\n label = t('files_trashbin', 'You');\n }\n if (!userId && !displayName) {\n label = t('files_trashbin', 'Unknown');\n }\n return {\n userId,\n displayName,\n label,\n };\n}\n/**\n * If the attribute is given it will be stringified and returned - otherwise null is returned.\n *\n * @param attribute The attribute to check\n */\nfunction stringOrNull(attribute) {\n if (attribute) {\n return String(attribute);\n }\n return null;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { davGetClient } from '@nextcloud/files';\n// init webdav client\nexport const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash`;\nexport const client = davGetClient();\n","import { File, Folder, davResultToNode, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { client, rootPath } from './client';\nimport { generateUrl } from '@nextcloud/router';\nconst data = `<?xml version=\"1.0\"?>\n<d:propfind ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t<nc:trashbin-deletion-time />\n\t\t<nc:trashbin-original-location />\n\t\t<nc:trashbin-title />\n\t\t<nc:trashbin-deleted-by-id />\n\t\t<nc:trashbin-deleted-by-display-name />\n\t\t${getDavProperties()}\n\t</d:prop>\n</d:propfind>`;\nconst resultToNode = (stat) => {\n const node = davResultToNode(stat, rootPath);\n node.attributes.previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', { fileid: node.fileid });\n return node;\n};\nexport const getContents = async (path = '/') => {\n const contentsResponse = await client.getDirectoryContents(`${rootPath}${path}`, {\n details: true,\n data,\n includeSelf: true,\n });\n const contents = contentsResponse.data.map(resultToNode);\n const [folder] = contents.splice(contents.findIndex((node) => node.path === path), 1);\n return {\n folder: folder,\n contents,\n };\n};\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { View } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { deleted, deletedBy, originalLocation } from './columns.ts';\nimport { getContents } from '../services/trashbin.ts';\nimport svgDelete from '@mdi/svg/svg/delete.svg?raw';\nexport const TRASHBIN_VIEW_ID = 'trashbin';\nexport const trashbinView = new View({\n id: TRASHBIN_VIEW_ID,\n name: t('files_trashbin', 'Deleted files'),\n caption: t('files_trashbin', 'List of files that have been deleted.'),\n emptyTitle: t('files_trashbin', 'No deleted files'),\n emptyCaption: t('files_trashbin', 'Files and folders you have deleted will show up here'),\n icon: svgDelete,\n order: 50,\n sticky: true,\n defaultSortKey: 'deleted',\n columns: [\n originalLocation,\n deletedBy,\n deleted,\n ],\n getContents,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { FileType } from '@nextcloud/files';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { n, t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nexport const isTrashbinEnabled = () => getCapabilities()?.files?.undelete === true;\nexport const canUnshareOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'shared');\n};\nexport const canDisconnectOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'external');\n};\nexport const isMixedUnshareAndDelete = (nodes) => {\n if (nodes.length === 1) {\n return false;\n }\n const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n return hasSharedItems && hasDeleteItems;\n};\nexport const isAllFiles = (nodes) => {\n return !nodes.some(node => node.type !== FileType.File);\n};\nexport const isAllFolders = (nodes) => {\n return !nodes.some(node => node.type !== FileType.Folder);\n};\nexport const displayName = (nodes, view) => {\n /**\n * If those nodes are all the root node of a\n * share, we can only unshare them.\n */\n if (canUnshareOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Leave this share');\n }\n return t('files', 'Leave these shares');\n }\n /**\n * If those nodes are all the root node of an\n * external storage, we can only disconnect it.\n */\n if (canDisconnectOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Disconnect storage');\n }\n return t('files', 'Disconnect storages');\n }\n /**\n * If we're in the trashbin, we can only delete permanently\n */\n if (view.id === 'trashbin' || !isTrashbinEnabled()) {\n return t('files', 'Delete permanently');\n }\n /**\n * If we're in the sharing view, we can only unshare\n */\n if (isMixedUnshareAndDelete(nodes)) {\n return t('files', 'Delete and unshare');\n }\n /**\n * If we're only selecting files, use proper wording\n */\n if (isAllFiles(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete file');\n }\n return t('files', 'Delete files');\n }\n /**\n * If we're only selecting folders, use proper wording\n */\n if (isAllFolders(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete folder');\n }\n return t('files', 'Delete folders');\n }\n return t('files', 'Delete');\n};\nexport const askConfirmation = async (nodes, view) => {\n const message = view.id === 'trashbin' || !isTrashbinEnabled()\n ? n('files', 'You are about to permanently delete {count} item', 'You are about to permanently delete {count} items', nodes.length, { count: nodes.length })\n : n('files', 'You are about to delete {count} item', 'You are about to delete {count} items', nodes.length, { count: nodes.length });\n return new Promise(resolve => {\n // TODO: Use the new dialog API\n window.OC.dialogs.confirmDestructive(message, t('files', 'Confirm deletion'), {\n type: window.OC.dialogs.YES_NO_BUTTONS,\n confirm: displayName(nodes, view),\n confirmClasses: 'error',\n cancel: t('files', 'Cancel'),\n }, (decision) => {\n resolve(decision);\n });\n });\n};\nexport const deleteNode = async (node) => {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\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')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showInfo } from '@nextcloud/dialogs';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport PQueue from 'p-queue';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport { TRASHBIN_VIEW_ID } from '../../../files_trashbin/src/files_views/trashbinView.ts';\nimport { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, isTrashbinEnabled } from './deleteUtils.ts';\nimport logger from '../logger.ts';\nconst queue = new PQueue({ concurrency: 5 });\nexport const ACTION_DELETE = 'delete';\nexport const action = new FileAction({\n id: ACTION_DELETE,\n displayName,\n iconSvgInline: (nodes) => {\n if (canUnshareOnly(nodes)) {\n return CloseSvg;\n }\n if (canDisconnectOnly(nodes)) {\n return NetworkOffSvg;\n }\n return TrashCanSvg;\n },\n enabled(nodes, view) {\n if (view.id === TRASHBIN_VIEW_ID) {\n const config = loadState('files_trashbin', 'config', { allow_delete: true });\n if (config.allow_delete === false) {\n return false;\n }\n }\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node, view) {\n try {\n let confirm = true;\n // Trick to detect if the action was called from a keyboard event\n // we need to make sure the method calling have its named containing 'keydown'\n // here we use `onKeydown` method from the FileEntryActions component\n const callStack = new Error().stack || '';\n const isCalledFromEventListener = callStack.toLocaleLowerCase().includes('keydown');\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled() || isCalledFromEventListener) {\n confirm = await askConfirmation([node], view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return null;\n }\n await deleteNode(node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view) {\n let confirm = true;\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled()) {\n confirm = await askConfirmation(nodes, view);\n }\n else if (nodes.length >= 5 && !canUnshareOnly(nodes) && !canDisconnectOnly(nodes)) {\n confirm = await askConfirmation(nodes, view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return Promise.all(nodes.map(() => null));\n }\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await deleteNode(node);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: 100,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { encodePath } from '@nextcloud/paths';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport axios from '@nextcloud/axios';\nimport PQueue from 'p-queue';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_FAVORITE = 'favorite';\nconst queue = new PQueue({ concurrency: 5 });\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: ACTION_FAVORITE,\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // Not enabled for public shares\n if (isPublicShare()) {\n return false;\n }\n // We can only favorite nodes if they are located in files\n return nodes.every(node => node.root?.startsWith?.('/files'))\n // and we have permissions\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await favoriteNode(node, view, willFavorite);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while adding file to favorite', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_RENAME = 'rename';\nexport const action = new FileAction({\n id: ACTION_RENAME,\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes, view) => {\n if (nodes.length === 0) {\n return false;\n }\n // Disable for single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // Only enable if all nodes have the delete permission\n return nodes.every((node) => Boolean(node.permissions & Permission.DELETE));\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","import { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n if (isPublicShare()) {\n return false;\n }\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // If the sidebar is already open for the current file, do nothing\n if (window.OCA.Files.Sidebar.file === node.path) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n // Open sidebar and set active tab to sharing by default\n window.OCA.Files.Sidebar.setActiveTab('sharing');\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP?.Files?.Router?.goToRoute(null, { view: view.id, fileid: String(node.fileid) }, { ...window.OCP.Files.Router.query, dir, opendetails: 'true' }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger.ts';\nexport const useActiveStore = function (...args) {\n const store = defineStore('active', {\n state: () => ({\n _initialized: false,\n activeNode: null,\n activeView: null,\n activeAction: null,\n }),\n actions: {\n setActiveNode(node) {\n if (!node) {\n throw new Error('Use clearActiveNode to clear the active node');\n }\n logger.debug('Setting active node', { node });\n this.activeNode = node;\n },\n clearActiveNode() {\n this.activeNode = null;\n },\n onDeletedNode(node) {\n if (this.activeNode && this.activeNode.source === node.source) {\n this.clearActiveNode();\n }\n },\n setActiveAction(action) {\n this.activeAction = action;\n },\n clearActiveAction() {\n this.activeAction = null;\n },\n onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n this.activeView = view;\n this.clearActiveNode();\n },\n },\n });\n const activeStore = store(...args);\n const navigation = getNavigation();\n // Make sure we only register the listeners once\n if (!activeStore._initialized) {\n subscribe('files:node:deleted', activeStore.onDeletedNode);\n activeStore._initialized = true;\n activeStore.onChangedView(navigation.active);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n activeStore.onChangedView(event.detail);\n });\n }\n return activeStore;\n};\n","import { NodeStatus } from '@nextcloud/files';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getPinia } from '../store';\nimport { useActiveStore } from '../store/active';\nimport logger from '../logger';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport const executeAction = async (action) => {\n const activeStore = useActiveStore(getPinia());\n const currentDir = (window?.OCP?.Files?.Router?.query?.dir || '/');\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentNode || !currentView) {\n logger.error('No active node or view', { node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n if (!action.enabled([currentNode], currentView)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName([currentNode], currentView);\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.setActiveAction(action);\n const success = await action.exec(currentNode, currentView, currentDir);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '\"{displayName}\" action executed successfully', { displayName }));\n return;\n }\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.clearActiveAction();\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"files\"}},[(!_vm.isPublic)?_c('Navigation'):_vm._e(),_vm._v(\" \"),_c('FilesList',{attrs:{\"is-public\":_vm.isPublic}})],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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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!./Cog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=209aff25\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon chart-pie-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=\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChartPieIcon\",\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!./ChartPie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartPie.vue?vue&type=template&id=90a70766\"\nimport script from \"./ChartPie.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPie.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 chart-pie-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\":\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\"}},[(_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<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-description=\"t('files', 'Storage information')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:aria-label=\"t('files', 'Storage quota')\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { debounce, throttle } from 'throttle-debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\n\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcProgressBar from '@nextcloud/vue/components/NcProgressBar'\n\nimport logger from '../logger.ts'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, false)\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmounted() {\n\t\t// If the user has a quota set, warn if the available account storage is <=0\n\t\t//\n\t\t// NOTE: This doesn't catch situations where actual *server*\n\t\t// disk (non-quota) space is low, but those should probably\n\t\t// be handled differently anyway since a regular user can't\n\t\t// can't do much about them (If we did want to indicate server disk\n\t\t// space matters to users, we'd probably want to use a warning\n\t\t// specific to that situation anyhow. So this covers warning covers\n\t\t// our primary day-to-day concern (individual account quota usage).\n\t\t//\n\t\tif (this.storageStats?.quota > 0 && this.storageStats?.free === 0) {\n\t\t\tthis.showStorageFullWarning()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\n\t\t\t\t// Warn the user if the available account storage changed from > 0 to 0\n\t\t\t\t// (unless only because quota was intentionally set to 0 by admin in the interim)\n\t\t\t\tif (this.storageStats?.free > 0 && response.data.data?.free === 0 && response.data.data?.quota > 0) {\n\t\t\t\t\tthis.showStorageFullWarning()\n\t\t\t\t}\n\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tshowStorageFullWarning() {\n\t\t\tshowError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!'))\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\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!./NavigationQuota.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!./NavigationQuota.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!./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&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!./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=d3cdbf54&scoped=true\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&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 \"d3cdbf54\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-description\":_vm.t('files', 'Storage information'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"aria-label\":_vm.t('files', 'Storage quota'),\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"name\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"name\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_favorites_first\",\"checked\":_vm.userConfig.sort_favorites_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_favorites_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort favorites first'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_folders_first\",\"checked\":_vm.userConfig.sort_folders_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_folders_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort folders before files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_hidden\",\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_mime_column\",\"checked\":_vm.userConfig.show_mime_column},on:{\"update:checked\":function($event){return _vm.setConfig('show_mime_column', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show file type column'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"crop_image_previews\",\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.enableGridView)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"grid_view\",\"checked\":_vm.userConfig.grid_view},on:{\"update:checked\":function($event){return _vm.setConfig('grid_view', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable the grid view'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"folder_tree\",\"checked\":_vm.userConfig.folder_tree},on:{\"update:checked\":function($event){return _vm.setConfig('folder_tree', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable folder tree'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"name\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"name\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"label\":_vm.t('files', 'WebDAV URL'),\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"warning\",\"name\":_vm.t('files', 'Warnings')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Prevent warning dialogs from open or reenable them.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.userConfig.show_dialog_file_extension},on:{\"update:checked\":function($event){return _vm.setConfig('show_dialog_file_extension', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show a warning dialog when changing a file extension.'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"shortcuts\",\"name\":_vm.t('files', 'Keyboard shortcuts')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Speed up your Files experience with these quick shortcuts.')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Actions')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"a\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the actions menu for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"F2\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Rename a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Del\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Delete a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"s\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Favorite or remove a file from favorites'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.isSystemtagsEnabled)?_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"t\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Manage tags for a file'))+\"\\n\\t\\t\\t\\t\")])]):_vm._e()]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Selection')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"A\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"ESC\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Deselect all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Space\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select or deselect a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Shift\")]),_vm._v(\" \"),_c('span',[_vm._v(\"+ \"),_c('kbd',[_vm._v(\"Space\")])])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select a range of files'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Navigation')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Alt\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the parent folder'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file above'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↓\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file below'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"←\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the left (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"→\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the right (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'View')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"V\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Toggle the grid view'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"D\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the sidebar for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"?\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show those shortcuts'))+\"\\n\\t\\t\\t\\t\")])])])])],1)\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-->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.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!./Setting.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=315a4ce8\"\nimport script from \"./Setting.vue?vue&type=script&lang=js\"\nexport * from \"./Setting.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')\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!./Settings.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!./Settings.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<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :name=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_favorites_first\"\n\t\t\t\t:checked=\"userConfig.sort_favorites_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_favorites_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort favorites first') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_folders_first\"\n\t\t\t\t:checked=\"userConfig.sort_folders_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_folders_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort folders before files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_hidden\"\n\t\t\t\t:checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_mime_column\"\n\t\t\t\t:checked=\"userConfig.show_mime_column\"\n\t\t\t\t@update:checked=\"setConfig('show_mime_column', $event)\">\n\t\t\t\t{{ t('files', 'Show file type column') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"crop_image_previews\"\n\t\t\t\t:checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-if=\"enableGridView\"\n\t\t\t\tdata-cy-files-settings-setting=\"grid_view\"\n\t\t\t\t:checked=\"userConfig.grid_view\"\n\t\t\t\t@update:checked=\"setConfig('grid_view', $event)\">\n\t\t\t\t{{ t('files', 'Enable the grid view') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"folder_tree\"\n\t\t\t\t:checked=\"userConfig.folder_tree\"\n\t\t\t\t@update:checked=\"setConfig('folder_tree', $event)\">\n\t\t\t\t{{ t('files', 'Enable folder tree') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:name=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :name=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:label=\"t('files', 'WebDAV URL')\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"warning\" :name=\"t('files', 'Warnings')\">\n\t\t\t<em>{{ t('files', 'Prevent warning dialogs from open or reenable them.') }}</em>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"userConfig.show_dialog_file_extension\"\n\t\t\t\t@update:checked=\"setConfig('show_dialog_file_extension', $event)\">\n\t\t\t\t{{ t('files', 'Show a warning dialog when changing a file extension.') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"shortcuts\"\n\t\t\t:name=\"t('files', 'Keyboard shortcuts')\">\n\t\t\t<em>{{ t('files', 'Speed up your Files experience with these quick shortcuts.') }}</em>\n\n\t\t\t<h3>{{ t('files', 'Actions') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>a</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the actions menu for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>F2</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Rename a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Del</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Delete a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>s</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Favorite or remove a file from favorites') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"isSystemtagsEnabled\">\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>t</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Manage tags for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Selection') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>A</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>ESC</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Deselect all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Space</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select or deselect a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Shift</kbd> <span>+ <kbd>Space</kbd></span>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select a range of files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Navigation') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Alt</kbd> + <kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the parent folder') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file above') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↓</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file below') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>←</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the left (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>→</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the right (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'View') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>V</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Toggle the grid view') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>D</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the sidebar for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>?</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Show those shortcuts') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey'\n\nimport Clipboard from 'vue-material-design-icons/ContentCopy.vue'\nimport NcAppSettingsDialog from '@nextcloud/vue/components/NcAppSettingsDialog'\nimport NcAppSettingsSection from '@nextcloud/vue/components/NcAppSettingsSection'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcInputField from '@nextcloud/vue/components/NcInputField'\n\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport Setting from '../components/Setting.vue'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\tconst isSystemtagsEnabled = getCapabilities()?.systemtags?.enabled === true\n\t\treturn {\n\t\t\tisSystemtagsEnabled,\n\t\t\tuserConfigStore,\n\t\t\tt,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t\tenableGridView: (loadState('core', 'config', [])['enable_non-accessible_features'] ?? true),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// ? opens the settings dialog on the keyboard shortcuts section\n\t\tuseHotKey('?', this.showKeyboardShortcuts, {\n\t\t\tstop: true,\n\t\t\tprevent: true,\n\t\t})\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tasync showKeyboardShortcuts() {\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\tawait this.$nextTick()\n\t\t\tdocument.getElementById('settings-section_shortcuts').scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\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!./Settings.vue?vue&type=style&index=0&id=9a0994e0&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!./Settings.vue?vue&type=style&index=0&id=9a0994e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=9a0994e0&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=9a0994e0&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 \"9a0994e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',_vm._l((_vm.currentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,staticClass:\"files-navigation__item\",style:(_vm.style),attrs:{\"allow-collapse\":\"\",\"loading\":view.loading,\"data-cy-files-navigation-item\":view.id,\"exact\":_vm.useExactRouteMatching(view),\"icon\":view.iconClass,\"name\":view.name,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":(open) => _vm.onOpen(open, view)},scopedSlots:_vm._u([(view.icon)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(view.loadChildViews && !view.loaded)?_c('li',{staticStyle:{\"display\":\"none\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasChildViews(view))?_c('FilesNavigationItem',{attrs:{\"parent\":view,\"level\":_vm.level + 1,\"views\":_vm.filterView(_vm.views, _vm.parent.id)}}):_vm._e()],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue';\n/**\n * Composable to get the currently active files view from the files navigation\n * @param _loaded If set enforce a current view is loaded\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useNavigation(_loaded) {\n const navigation = getNavigation();\n const views = shallowRef(navigation.views);\n const currentView = shallowRef(navigation.active);\n /**\n * Event listener to update the `currentView`\n * @param event The update event\n */\n function onUpdateActive(event) {\n currentView.value = event.detail;\n }\n /**\n * Event listener to update all registered views\n */\n function onUpdateViews() {\n views.value = navigation.views;\n triggerRef(views);\n }\n onMounted(() => {\n navigation.addEventListener('update', onUpdateViews);\n navigation.addEventListener('updateActive', onUpdateActive);\n subscribe('files:navigation:updated', onUpdateViews);\n });\n onUnmounted(() => {\n navigation.removeEventListener('update', onUpdateViews);\n navigation.removeEventListener('updateActive', onUpdateActive);\n });\n return {\n currentView,\n views,\n };\n}\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config:updated', { view, key, value });\n }\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationItem.vue?vue&type=template&id=71eac8ba\"\nimport script from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\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","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileListFilter } from '@nextcloud/files';\n/**\n * Simple file list filter controlled by the Navigation search box\n */\nexport class FilenameFilter extends FileListFilter {\n searchQuery = '';\n constructor() {\n super('files:filename', 5);\n }\n filter(nodes) {\n const queryParts = this.searchQuery.toLocaleLowerCase().split(' ').filter(Boolean);\n return nodes.filter((node) => {\n const displayname = node.displayname.toLocaleLowerCase();\n return queryParts.every((part) => displayname.includes(part));\n });\n }\n reset() {\n this.updateQuery('');\n }\n updateQuery(query) {\n query = (query || '').trim();\n // Only if the query is different we update the filter to prevent re-computing all nodes\n if (query !== this.searchQuery) {\n this.searchQuery = query;\n this.filterUpdated();\n const chips = [];\n if (query !== '') {\n chips.push({\n text: query,\n onclick: () => {\n this.updateQuery('');\n },\n });\n }\n this.updateChips(chips);\n // Emit the new query as it might have come not from the Navigation\n this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }));\n }\n }\n}\n","import { emit, subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport logger from '../logger';\n/**\n * Check if the given value is an instance file list filter with mount function\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'mount' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n * @private\n */\n function onFilterUpdate() {\n emit('files:filters:changed');\n }\n /**\n * Event handler for filter chips updates\n * @param event The update event\n * @private\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n * @private\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n // Initialize the store\n subscribe('files:navigation:changed', onViewChanged);\n subscribe('files:filter:added', addFilter);\n subscribe('files:filter:removed', removeFilter);\n for (const filter of getFileListFilters()) {\n addFilter(filter);\n }\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n // getters / computed\n activeChips,\n sortedFilters,\n // actions / methods\n addFilter,\n removeFilter,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppNavigation',{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_vm.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c('NcAppNavigationSearch',{attrs:{\"label\":_vm.t('files', 'Filter file names …')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})]},proxy:true},{key:\"default\",fn:function(){return [_c('NcAppNavigationList',{staticClass:\"files-navigation__list\",attrs:{\"aria-label\":_vm.t('files', 'Views')}},[_c('FilesNavigationItem',{attrs:{\"views\":_vm.viewMap}})],1),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_vm.settingsOpened=$event},\"close\":_vm.onSettingsClose}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"name\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('IconCog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files';\nimport { watchThrottled } from '@vueuse/core';\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { FilenameFilter } from '../filters/FilenameFilter';\n/**\n * This is for the `Navigation` component to provide a filename filter\n */\nexport function useFilenameFilter() {\n const searchQuery = ref('');\n const filenameFilter = new FilenameFilter();\n /**\n * Updating the search query ref from the filter\n * @param event The update:query event\n */\n function updateQuery(event) {\n if (event.type === 'update:query') {\n searchQuery.value = event.detail;\n event.stopPropagation();\n }\n }\n onMounted(() => {\n filenameFilter.addEventListener('update:query', updateQuery);\n registerFileListFilter(filenameFilter);\n });\n onUnmounted(() => {\n filenameFilter.removeEventListener('update:query', updateQuery);\n unregisterFileListFilter(filenameFilter.id);\n });\n // Update the query on the filter, but throttle to max. every 800ms\n // This will debounce the filter refresh\n watchThrottled(searchQuery, () => {\n filenameFilter.updateQuery(searchQuery.value);\n }, { throttle: 800 });\n return {\n searchQuery,\n };\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!./Navigation.vue?vue&type=style&index=0&id=084c464a&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!./Navigation.vue?vue&type=style&index=0&id=084c464a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=084c464a&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=084c464a&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 \"084c464a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading,\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\",class:{ 'files-list__header--public': _vm.isPublic }},[_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canShare && _vm.fileListWidth >= 512)?_c('NcButton',{staticClass:\"files-list__header-share-button\",class:{ 'files-list__header-share-button--shared': _vm.shareButtonType },attrs:{\"aria-label\":_vm.shareButtonLabel,\"title\":_vm.shareButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.shareButtonType === _vm.ShareType.Link)?_c('LinkIcon'):_c('AccountPlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4106306959)}):_vm._e(),_vm._v(\" \"),(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"type\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),(_vm.fileListWidth >= 512 && _vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.toggleGridView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.userConfig.grid_view)?_c('ListViewIcon'):_c('ViewGridIcon')]},proxy:true}],null,false,1682960703)}):_vm._e()],1),_vm._v(\" \"),(!_vm.loading && _vm.canUpload && _vm.currentFolder)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir && _vm.currentFolder && _vm.currentView)?[_c('div',{staticClass:\"files-list__before\"},_vm._l((_vm.headers),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})}),1),_vm._v(\" \"),(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}],null,false,3448385010)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,2673163798)}):(_vm.currentView?.emptyView)?_c('div',{staticClass:\"files-list__empty-view-wrapper\"},[_c('div',{ref:\"customEmptyView\"})]):_c('NcEmptyContent',{attrs:{\"name\":_vm.currentView?.emptyTitle || _vm.t('files', 'No files in here'),\"description\":_vm.currentView?.emptyCaption || _vm.t('files', 'Upload some content or sync with your devices!'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([(_vm.directory !== '/')?{key:\"action\",fn:function(){return [(_vm.canUpload && !_vm.isQuotaExceeded)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_c('NcButton',{attrs:{\"to\":_vm.toPreviousDir,\"type\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView.icon}})]},proxy:true}],null,true)})]:_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted,\"summary\":_vm.summary}})],2)\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 account-plus-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=\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountPlusIcon\",\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!./AccountPlus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\nimport script from \"./AccountPlus.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPlus.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-plus-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\":\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,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 reload-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=\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ReloadIcon\",\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!./Reload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\nimport script from \"./Reload.vue?vue&type=script&lang=js\"\nexport * from \"./Reload.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 reload-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\":\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FormatListBulletedSquareIcon\",\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!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\nimport script from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulletedSquare.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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\"}},[(_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!./ViewGrid.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ViewGridIcon\",\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 \"./ViewGrid.vue?vue&type=template&id=672ea5c8\"\nimport script from \"./ViewGrid.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param path - The full path\n * @return [dirPath, fileName]\n */\nexport function extractFilePaths(path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n}\n/**\n * Generate a translated summary of an array of nodes\n *\n * @param nodes - The nodes to summarize\n * @param hidden - The number of hidden nodes\n */\nexport function getSummaryFor(nodes, hidden = 0) {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n const summary = [];\n if (fileCount > 0 || folderCount === 0) {\n const fileSummary = n('files', '%n file', '%n files', fileCount);\n summary.push(fileSummary);\n }\n if (folderCount > 0) {\n const folderSummary = n('files', '%n folder', '%n folders', folderCount);\n summary.push(folderSummary);\n }\n if (hidden > 0) {\n // TRANSLATORS: This is the number of hidden files or folders\n const hiddenSummary = n('files', '%n hidden', '%n hidden', hidden);\n summary.push(hiddenSummary);\n }\n return summary.join(' · ');\n}\n","import { getFileListHeaders } from '@nextcloud/files';\nimport { computed, ref } from 'vue';\n/**\n * Get the registered and sorted file list headers.\n */\nexport function useFileListHeaders() {\n const headers = ref(getFileListHeaders());\n const sorted = computed(() => [...headers.value].sort((a, b) => a.order - b.order));\n return sorted;\n}\n","import { onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst observer = new ResizeObserver((elements) => {\n if (elements[0].contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = elements[0].contentBoxSize[0].inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = elements[0].contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return readonly(width);\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","import { defineStore } from 'pinia';\nimport { dirname } from '@nextcloud/paths';\nimport { File, FileType, Folder, Node, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport logger from '../logger';\nimport { useFilesStore } from './files';\nexport const usePathsStore = function (...args) {\n const files = useFilesStore(...args);\n const store = defineStore('paths', {\n state: () => ({\n paths: {},\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.source);\n },\n deletePath(service, path) {\n // skip if service does not exist\n if (!this.paths[service]) {\n return;\n }\n Vue.delete(this.paths[service], path);\n },\n onCreatedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (!node.fileid) {\n logger.error('Node has no fileid', { node });\n return;\n }\n // Only add path if it's a folder\n if (node.type === FileType.Folder) {\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Update parent folder children if exists\n // If the folder is the root, get it and update it\n this.addNodeToParentChildren(node);\n },\n onDeletedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (node.type === FileType.Folder) {\n // Delete the path\n this.deletePath(service, node.path);\n }\n this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({ source: oldSource, owner: node.owner, mime: node.mime });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n },\n });\n const pathsStore = store(...args);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n subscribe('files:node:created', pathsStore.onCreatedNode);\n subscribe('files:node:deleted', pathsStore.onDeletedNode);\n subscribe('files:node:moved', pathsStore.onMovedNode);\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { usePathsStore } from './paths.ts';\nexport const useFilesStore = function (...args) {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by its source\n * @param state\n */\n getNode: (state) => (source) => state.files[source],\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n * @param state\n */\n getNodes: (state) => (sources) => sources\n .map(source => state.files[source])\n .filter(Boolean),\n /**\n * Get files or folders by their file ID\n * Multiple nodes can have the same file ID but different sources\n * (e.g. in a shared context)\n * @param state\n */\n getNodesById: (state) => (fileId) => Object.values(state.files).filter(node => node.fileid === fileId),\n /**\n * Get the root folder of a service\n * @param state\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n /**\n * Get cached child nodes within a given path\n *\n * @param service The service (files view)\n * @param path The path relative within the service\n * @return Array of cached nodes within the path\n */\n getNodesByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = this.getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = this.getNode(source);\n }\n }\n // If we found a cache entry and the cache entry was already loaded (has children) then use it\n return (folder?._children ?? [])\n .map((source) => this.getNode(source))\n .filter(Boolean);\n },\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.source) {\n Vue.delete(this.files, node.source);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n onCreatedNode(node) {\n this.updateNodes([node]);\n },\n onMovedNode({ node, oldSource }) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // Update the path of the node\n Vue.delete(this.files, oldSource);\n this.updateNodes([node]);\n },\n async onUpdatedNode(node) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = this.getNodesById(node.fileid);\n if (nodes.length > 1) {\n await Promise.all(nodes.map(node => fetchNode(node.path))).then(this.updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.fileid });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (node.source === nodes[0].source) {\n this.updateNodes([node]);\n return;\n }\n // Otherwise, it means we receive an event for a node that is not in the store\n fetchNode(node.path).then(n => this.updateNodes([n]));\n },\n // Handlers for legacy sidebar (no real nodes support)\n onAddFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n },\n onRemoveFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n },\n },\n });\n const fileStore = store(...args);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n subscribe('files:node:created', fileStore.onCreatedNode);\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n subscribe('files:node:updated', fileStore.onUpdatedNode);\n subscribe('files:node:moved', fileStore.onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', fileStore.onAddFavorite);\n subscribe('files:favorites:removed', fileStore.onRemoveFavorite);\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { computed } from 'vue';\nimport { useRoute } from 'vue-router/composables';\n/**\n * Get information about the current route\n */\nexport function useRouteParameters() {\n const route = useRoute();\n /**\n * Get the path of the current active directory\n */\n const directory = computed(() => String(route.query.dir || '/')\n // Remove any trailing slash but leave root slash\n .replace(/^(.+)\\/$/, '$1'));\n /**\n * Get the current fileId used on the route\n */\n const fileId = computed(() => {\n const fileId = Number.parseInt(route.params.fileid ?? '0') || null;\n return Number.isNaN(fileId) ? null : fileId;\n });\n /**\n * State of `openFile` route param\n */\n const openFile = computed(\n // if `openfile` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'openfile' in route.query && (typeof route.query.openfile !== 'string' || route.query.openfile.toLocaleLowerCase() !== 'false'));\n const openDetails = computed(\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'opendetails' in route.query && (typeof route.query.opendetails !== 'string' || route.query.opendetails.toLocaleLowerCase() !== 'false'));\n return {\n /** Path of currently open directory */\n directory,\n /** Current active fileId */\n fileId,\n /** Should the active node should be opened (`openFile` route param) */\n openFile,\n /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\n };\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n * @param lastSelectedIndex\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { getUploader } from '@nextcloud/upload';\nlet uploader;\nexport const useUploaderStore = function (...args) {\n // Only init on runtime\n uploader = getUploader();\n const store = defineStore('uploader', {\n state: () => ({\n queue: uploader.queue,\n }),\n });\n return store(...args);\n};\n","import { emit } from '@nextcloud/event-bus';\nimport { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport logger from '../logger.ts';\n/**\n * This represents a Directory in the file tree\n * We extend the File class to better handling uploading\n * and stay as close as possible as the Filesystem API.\n * This also allow us to hijack the size or lastModified\n * properties to compute them dynamically.\n */\nexport class Directory extends File {\n /* eslint-disable no-use-before-define */\n _contents;\n constructor(name, contents = []) {\n super([], name, { type: 'httpd/unix-directory' });\n this._contents = contents;\n }\n set contents(contents) {\n this._contents = contents;\n }\n get contents() {\n return this._contents;\n }\n get size() {\n return this._computeDirectorySize(this);\n }\n get lastModified() {\n if (this._contents.length === 0) {\n return Date.now();\n }\n return this._computeDirectoryMtime(this);\n }\n /**\n * Get the last modification time of a file tree\n * This is not perfect, but will get us a pretty good approximation\n * @param directory the directory to traverse\n */\n _computeDirectoryMtime(directory) {\n return directory.contents.reduce((acc, file) => {\n return file.lastModified > acc\n // If the file is a directory, the lastModified will\n // also return the results of its _computeDirectoryMtime method\n // Fancy recursion, huh?\n ? file.lastModified\n : acc;\n }, 0);\n }\n /**\n * Get the size of a file tree\n * @param directory the directory to traverse\n */\n _computeDirectorySize(directory) {\n return directory.contents.reduce((acc, entry) => {\n // If the file is a directory, the size will\n // also return the results of its _computeDirectorySize method\n // Fancy recursion, huh?\n return acc + entry.size;\n }, 0);\n }\n}\n/**\n * Traverse a file tree using the Filesystem API\n * @param entry the entry to traverse\n */\nexport const traverseTree = async (entry) => {\n // Handle file\n if (entry.isFile) {\n return new Promise((resolve, reject) => {\n entry.file(resolve, reject);\n });\n }\n // Handle directory\n logger.debug('Handling recursive file tree', { entry: entry.name });\n const directory = entry;\n const entries = await readDirectory(directory);\n const contents = (await Promise.all(entries.map(traverseTree))).flat();\n return new Directory(directory.name, contents);\n};\n/**\n * Read a directory using Filesystem API\n * @param directory the directory to read\n */\nconst readDirectory = (directory) => {\n const dirReader = directory.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n const getEntries = () => {\n dirReader.readEntries((results) => {\n if (results.length) {\n entries.push(...results);\n getEntries();\n }\n else {\n resolve(entries);\n }\n }, (error) => {\n reject(error);\n });\n };\n getEntries();\n });\n};\nexport const createDirectoryIfNotExists = async (absolutePath) => {\n const davClient = davGetClient();\n const dirExists = await davClient.exists(absolutePath);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { absolutePath });\n await davClient.createDirectory(absolutePath, { recursive: true });\n const stat = await davClient.stat(absolutePath, { details: true, data: davGetDefaultPropfind() });\n emit('files:node:created', davResultToNode(stat.data));\n }\n};\nexport const resolveConflict = async (files, destination, contents) => {\n try {\n // List all conflicting files\n const conflicts = files.filter((file) => {\n return contents.find((node) => node.basename === (file instanceof File ? file.name : file.basename));\n }).filter(Boolean);\n // List of incoming files that are NOT in conflict\n const uploads = files.filter((file) => {\n return !conflicts.includes(file);\n });\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, conflicts, contents);\n logger.debug('Conflict resolution', { uploads, selected, renamed });\n // If the user selected nothing, we cancel the upload\n if (selected.length === 0 && renamed.length === 0) {\n // User skipped\n showInfo(t('files', 'Conflicts resolution skipped'));\n logger.info('User skipped the conflict resolution');\n return [];\n }\n // Update the list of files to upload\n return [...uploads, ...selected, ...renamed];\n }\n catch (error) {\n console.error(error);\n // User cancelled\n showError(t('files', 'Upload cancelled'));\n logger.error('User cancelled the upload');\n }\n return [];\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\nimport { loadState } from '@nextcloud/initial-state';\nconst sharePermissions = loadState('files_sharing', 'sharePermissions', Permission.NONE);\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n// Maximum number of concurrent operations\nconst MAX_CONCURRENCY = 5;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: MAX_CONCURRENCY });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.value === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n if (!canDownload(nodes)) {\n return false;\n }\n // it cannot be copied if the user has only view permissions\n if (nodes.some((node) => node.permissions === Permission.NONE)) {\n return false;\n }\n // on public shares all files have the same permission so copy is only possible if write permission is granted\n if (isPublicShare()) {\n return Boolean(sharePermissions & Permission.CREATE);\n }\n // otherwise permission is granted\n return true;\n};\n","import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { join } from 'path';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.ts';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param stat The result returned by the webdav library\n */\nexport const resultToNode = (stat) => davResultToNode(stat);\nexport const getContents = (path = '/') => {\n path = join(davRootPath, path);\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path && `${root.filename}/` !== path) {\n logger.debug(`Exepected \"${path}\" but got filename \"${root.filename}\" instead.`);\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map((result) => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError, showInfo, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName, Permission } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Create a loading notification toast\n * @param mode The move or copy mode\n * @param source Name of the node that is copied / moved\n * @param destination Destination path\n * @return {() => void} Function to hide the notification\n */\nfunction createLoadingNotification(mode, source, destination) {\n const text = mode === MoveCopyAction.MOVE ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source, destination }) : t('files', 'Copying \"{source}\" to \"{destination}\" …', { source, destination });\n let toast;\n toast = showInfo(`<span class=\"icon icon-loading-small toast-loading-icon\"></span> ${text}`, {\n isHTML: true,\n timeout: TOAST_PERMANENT_TIMEOUT,\n onRemove: () => { toast?.hideToast(); toast = undefined; },\n });\n return () => toast && toast.hideToast();\n}\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n // Do not allow to MOVE a node to the same folder it is already located\n if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n /**\n * Example:\n * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n * Allow move of /foo does not start with /foo/bar/file.txt so allow\n * - node: /foo , destination: /foo/bar\n * Do not allow as it would copy foo within itself\n * - node: /foo/bar.txt, destination: /foo\n * Allow copy a file to the same directory\n * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n * Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n */\n if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const actionFinished = createLoadingNotification(method, node.basename, destination.path);\n const queue = getQueue();\n return await queue.add(async () => {\n const copySuffix = (index) => {\n if (index === 1) {\n return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n }\n return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n };\n try {\n const client = davGetClient();\n const currentPath = join(davRootPath, node.path);\n const destinationPath = join(davRootPath, destination.path);\n if (method === MoveCopyAction.COPY) {\n let target = node.basename;\n // If we do not allow overwriting then find an unique name\n if (!overwrite) {\n const otherNodes = await client.getDirectoryContents(destinationPath);\n target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n suffix: copySuffix,\n ignoreFileExtension: node.type === FileType.Folder,\n });\n }\n await client.copyFile(currentPath, join(destinationPath, target));\n // If the node is copied into current directory the view needs to be updated\n if (node.dirname === destination.path) {\n const { data } = await client.stat(join(destinationPath, target), {\n details: true,\n data: davGetDefaultPropfind(),\n });\n emit('files:node:created', davResultToNode(data));\n }\n }\n else {\n // show conflict file popup if we do not allow overwriting\n if (!overwrite) {\n const otherNodes = await getContents(destination.path);\n if (hasConflict([node], otherNodes.contents)) {\n try {\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n // two empty arrays: either only old files or conflict skipped -> no action required\n if (!selected.length && !renamed.length) {\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\n }\n }\n // getting here means either no conflict, file was renamed to keep both files\n // in a conflict, or the selected file was chosen to be kept during the conflict\n try {\n await client.moveFile(currentPath, join(destinationPath, node.basename));\n }\n catch (error) {\n const parser = new DOMParser();\n const text = await error.response?.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n showError(message);\n }\n throw error;\n }\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error.response?.status === 423) {\n throw new Error(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n logger.debug(error);\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', '');\n actionFinished();\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param action The action to open the file picker for\n * @param dir The directory to start the file picker in\n * @param nodes The nodes to move/copy\n * @return The picked destination or false if cancelled by user\n */\nasync function openFilePickerForAction(action, dir = '/', nodes) {\n const { resolve, reject, promise } = Promise.withResolvers();\n const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We don't want to show the current nodes in the file picker\n return !fileIDs.includes(n.fileid);\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir)\n .setButtonFactory((selection, path) => {\n const buttons = [];\n const target = basename(path);\n const dirnames = nodes.map(node => node.dirname);\n const paths = nodes.map(node => node.path);\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIconSvg,\n disabled: selection.some((node) => (node.permissions & Permission.CREATE) === 0),\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\n return buttons;\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: FolderMoveSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.MOVE,\n });\n },\n });\n }\n return buttons;\n })\n .build();\n filePicker.pick()\n .catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n resolve(false);\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n return promise;\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = new FileAction({\n id: ACTION_COPY_MOVE,\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes, view) {\n // We can not copy or move in single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n let result;\n try {\n result = await openFilePickerForAction(action, dir, [node]);\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n if (result === false) {\n showInfo(t('files', 'Cancelled move or copy of \"{filename}\".', { filename: node.displayname }));\n return null;\n }\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const action = getActionForNodes(nodes);\n const result = await openFilePickerForAction(action, dir, nodes);\n // Handle cancellation silently\n if (result === false) {\n showInfo(nodes.length === 1\n ? t('files', 'Cancelled move or copy of \"{filename}\".', { filename: nodes[0].displayname })\n : t('files', 'Cancelled move or copy operation'));\n return nodes.map(() => null);\n }\n const promises = nodes.map(async (node) => {\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n logger.error(`Failed to ${result.action} node`, { node, error });\n return false;\n }\n });\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n // we let the front handle the error.\n return await Promise.all(promises);\n },\n order: 15,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Folder, Node, NodeStatus, davRootPath } from '@nextcloud/files';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { join } from 'path';\nimport { joinPaths } from '@nextcloud/paths';\nimport { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils';\nimport { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils';\nimport logger from '../logger.ts';\n/**\n * This function converts a list of DataTransferItems to a file tree.\n * It uses the Filesystem API if available, otherwise it falls back to the File API.\n * The File API will NOT be available if the browser is not in a secure context (e.g. HTTP).\n * ⚠️ When using this method, you need to use it as fast as possible, as the DataTransferItems\n * will be cleared after the first access to the props of one of the entries.\n *\n * @param items the list of DataTransferItems\n */\nexport const dataTransferToFileTree = async (items) => {\n // Check if the browser supports the Filesystem API\n // We need to cache the entries to prevent Blink engine bug that clears\n // the list (`data.items`) after first access props of one of the entries\n const entries = items\n .filter((item) => {\n if (item.kind !== 'file') {\n logger.debug('Skipping dropped item', { kind: item.kind, type: item.type });\n return false;\n }\n return true;\n }).map((item) => {\n // MDN recommends to try both, as it might be renamed in the future\n return item?.getAsEntry?.()\n ?? item?.webkitGetAsEntry?.()\n ?? item;\n });\n let warned = false;\n const fileTree = new Directory('root');\n // Traverse the file tree\n for (const entry of entries) {\n // Handle browser issues if Filesystem API is not available. Fallback to File API\n if (entry instanceof DataTransferItem) {\n logger.warn('Could not get FilesystemEntry of item, falling back to file');\n const file = entry.getAsFile();\n if (file === null) {\n logger.warn('Could not process DataTransferItem', { type: entry.type, kind: entry.kind });\n showError(t('files', 'One of the dropped files could not be processed'));\n continue;\n }\n // Warn the user that the browser does not support the Filesystem API\n // we therefore cannot upload directories recursively.\n if (file.type === 'httpd/unix-directory' || !file.type) {\n if (!warned) {\n logger.warn('Browser does not support Filesystem API. Directories will not be uploaded');\n showWarning(t('files', 'Your browser does not support the Filesystem API. Directories will not be uploaded'));\n warned = true;\n }\n continue;\n }\n fileTree.contents.push(file);\n continue;\n }\n // Use Filesystem API\n try {\n fileTree.contents.push(await traverseTree(entry));\n }\n catch (error) {\n // Do not throw, as we want to continue with the other files\n logger.error('Error while traversing file tree', { error });\n }\n }\n return fileTree;\n};\nexport const onDropExternalFiles = async (root, destination, contents) => {\n const uploader = getUploader();\n // Check for conflicts on root elements\n if (await hasConflict(root.contents, contents)) {\n root.contents = await resolveConflict(root.contents, destination, contents);\n }\n if (root.contents.length === 0) {\n logger.info('No files to upload', { root });\n showInfo(t('files', 'No files to upload'));\n return [];\n }\n // Let's process the files\n logger.debug(`Uploading files to ${destination.path}`, { root, contents: root.contents });\n const queue = [];\n const uploadDirectoryContents = async (directory, path) => {\n for (const file of directory.contents) {\n // This is the relative path to the resource\n // from the current uploader destination\n const relativePath = join(path, file.name);\n // If the file is a directory, we need to create it first\n // then browse its tree and upload its contents.\n if (file instanceof Directory) {\n const absolutePath = joinPaths(davRootPath, destination.path, relativePath);\n try {\n console.debug('Processing directory', { relativePath });\n await createDirectoryIfNotExists(absolutePath);\n await uploadDirectoryContents(file, relativePath);\n }\n catch (error) {\n showError(t('files', 'Unable to create the directory {directory}', { directory: file.name }));\n logger.error('', { error, absolutePath, directory: file });\n }\n continue;\n }\n // If we've reached a file, we can upload it\n logger.debug('Uploading file to ' + join(destination.path, relativePath), { file });\n // Overriding the root to avoid changing the current uploader context\n queue.push(uploader.upload(relativePath, file, destination.source));\n }\n };\n // Pause the uploader to prevent it from starting\n // while we compute the queue\n uploader.pause();\n // Upload the files. Using '/' as the starting point\n // as we already adjusted the uploader destination\n await uploadDirectoryContents(root, '/');\n uploader.start();\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while uploading files', { errors });\n showError(t('files', 'Some files could not be uploaded'));\n return [];\n }\n logger.debug('Files uploaded successfully');\n showSuccess(t('files', 'Files uploaded successfully'));\n return Promise.all(queue);\n};\nexport const onDropInternalFiles = async (nodes, destination, contents, isCopy = false) => {\n const queue = [];\n // Check for conflicts on root elements\n if (await hasConflict(nodes, contents)) {\n nodes = await resolveConflict(nodes, destination, contents);\n }\n if (nodes.length === 0) {\n logger.info('No files to process', { nodes });\n showInfo(t('files', 'No files to process'));\n return;\n }\n for (const node of nodes) {\n Vue.set(node, 'status', NodeStatus.LOADING);\n queue.push(handleCopyMoveNodeTo(node, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE, true));\n }\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n nodes.forEach(node => Vue.set(node, 'status', undefined));\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while copying or moving files', { errors });\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n return;\n }\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n * @param selection array of node sources\n */\n set(selection = []) {\n Vue.set(this, 'dragging', selection);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'dragging', []);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{staticClass:\"files-list__breadcrumbs\",class:{ 'files-list__breadcrumbs--with-progress': _vm.wrapUploadProgressBar },attrs:{\"data-cy-files-content-breadcrumbs\":\"\",\"aria-label\":_vm.t('files', 'Current directory path')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"dir\":\"auto\",\"to\":section.to,\"force-icon-text\":index === 0 && _vm.fileListWidth >= 486,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)},\"dragover\":function($event){return _vm.onDragOver($event, section.dir)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"size\":20,\"svg\":_vm.viewIcon}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&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!./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=7b525302&scoped=true\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&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 \"7b525302\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragover),expression:\"dragover\"}],staticClass:\"files-list__drag-drop-notice\",attrs:{\"data-cy-files-drag-drop-area\":\"\"},on:{\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"files-list__drag-drop-notice-wrapper\"},[(_vm.canUpload && !_vm.isQuotaExceeded)?[_c('TrayArrowDownIcon',{attrs:{\"size\":48}}),_vm._v(\" \"),_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Drag and drop files here to upload'))+\"\\n\\t\\t\\t\")])]:[_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cantUploadLabel)+\"\\n\\t\\t\\t\")])]],2)])\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 tray-arrow-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=\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TrayArrowDownIcon\",\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!./TrayArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\nimport script from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowDown.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 tray-arrow-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\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\"}},[(_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/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"","\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!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&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!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropNotice.vue?vue&type=template&id=6efab70c&scoped=true\"\nimport script from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&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 \"6efab70c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.enabled),expression:\"enabled\"}],class:`files-list__header-${_vm.header.id}`},[_c('span',{ref:\"mount\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=173a4473\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\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,_setup=_vm._self._setupProxy;return _c('VirtualList',{ref:\"table\",attrs:{\"data-component\":_vm.userConfig.grid_view ? _vm.FileEntryGrid : _vm.FileEntry,\"data-key\":'source',\"data-sources\":_vm.nodes,\"grid-mode\":_vm.userConfig.grid_view,\"extra-props\":{\n\t\tisMimeAvailable: _vm.isMimeAvailable,\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilters')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.n('files', '{count} selected', '{count} selected', _vm.selectedNodes.length, { count: _vm.selectedNodes.length }))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.headers),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})})},proxy:true},{key:\"header\",fn:function(){return [_c('FilesListTableHeader',{ref:\"thead\",attrs:{\"files-list-width\":_vm.fileListWidth,\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"files-list-width\":_vm.fileListWidth,\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}],null,true)})\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 */\nimport { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","import axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog';\nimport { basename, dirname, extname } from 'path';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nimport Vue, { defineAsyncComponent, ref } from 'vue';\nimport { useUserConfigStore } from './userconfig';\nimport { fetchNode } from '../services/WebdavClient';\nexport const useRenamingStore = defineStore('renaming', () => {\n /**\n * The currently renamed node\n */\n const renamingNode = ref();\n /**\n * The new name of the currently renamed node\n */\n const newNodeName = ref('');\n /**\n * Internal flag to only allow calling `rename` once.\n */\n const isRenaming = ref(false);\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n *\n * @return true if success, false if skipped (e.g. new and old name are the same)\n * @throws Error if renaming fails, details are set in the error message\n */\n async function rename() {\n if (renamingNode.value === undefined) {\n throw new Error('No node is currently being renamed');\n }\n // Only rename once so we use this as some kind of mutex\n if (isRenaming.value) {\n return false;\n }\n isRenaming.value = true;\n let node = renamingNode.value;\n Vue.set(node, 'status', NodeStatus.LOADING);\n const userConfig = useUserConfigStore();\n let newName = newNodeName.value.trim();\n const oldName = node.basename;\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n // Check for extension change for files\n if (node.type === FileType.File\n && oldExtension !== newExtension\n && userConfig.userConfig.show_dialog_file_extension\n && !(await showFileExtensionDialog(oldExtension, newExtension))) {\n // user selected to use the old extension\n newName = basename(newName, newExtension) + oldExtension;\n }\n const oldEncodedSource = node.encodedSource;\n try {\n if (oldName === newName) {\n return false;\n }\n // rename the node\n node.rename(newName);\n logger.debug('Moving file to', { destination: node.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: node.encodedSource,\n Overwrite: 'F',\n },\n });\n // Update mime type if extension changed\n // as other related informations might have changed\n // on the backend but it is really hard to know on the front\n if (oldExtension !== newExtension) {\n node = await fetchNode(node.path);\n }\n // Success 🎉\n emit('files:node:updated', node);\n emit('files:node:renamed', node);\n emit('files:node:moved', {\n node,\n oldSource: `${dirname(node.source)}/${oldName}`,\n });\n // Reset the state not changed\n if (renamingNode.value === node) {\n $reset();\n }\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n node.rename(oldName);\n if (isAxiosError(error)) {\n // TODO: 409 means current folder does not exist, redirect ?\n if (error?.response?.status === 404) {\n throw new Error(t('files', 'Could not rename \"{oldName}\", it does not exist any more', { oldName }));\n }\n else if (error?.response?.status === 412) {\n throw new Error(t('files', 'The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.', {\n newName,\n dir: basename(renamingNode.value.dirname),\n }));\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }));\n }\n finally {\n Vue.set(node, 'status', undefined);\n isRenaming.value = false;\n }\n }\n /**\n * Reset the store state\n */\n function $reset() {\n newNodeName.value = '';\n renamingNode.value = undefined;\n }\n // Make sure we only register the listeners once\n subscribe('files:node:rename', (node) => {\n renamingNode.value = node;\n newNodeName.value = node.basename;\n });\n return {\n $reset,\n newNodeName,\n rename,\n renamingNode,\n };\n});\n/**\n * Show a dialog asking user for confirmation about changing the file extension.\n *\n * @param oldExtension the old file name extension\n * @param newExtension the new file name extension\n */\nasync function showFileExtensionDialog(oldExtension, newExtension) {\n const { promise, resolve } = Promise.withResolvers();\n spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileExtension.vue')), { oldExtension, newExtension }, (useNewExtension) => resolve(Boolean(useNewExtension)));\n return await promise;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=7b30c709\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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 \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n data() {\n return {\n openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-actions\",attrs:{\"data-cy-files-list-row-actions\":\"\"}},[_vm._l((_vm.enabledRenderActions),function(action){return _c('CustomElementRender',{key:action.id,staticClass:\"files-list__row-action--inline\",class:'files-list__row-action-' + action.id,attrs:{\"current-view\":_vm.currentView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"type\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"close\":_vm.onMenuClose,\"closed\":_vm.onMenuClosed}},[_vm._l((_vm.enabledMenuActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action\",class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.([_vm.source], _vm.currentView),\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-action--submenu\",class:`files-list__row-action-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-row-action\":action.id,\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"","\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!./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&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!./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&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!./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=7f0265e5&scoped=true\"\nimport script from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&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 \"7f0265e5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[(_vm.isLoading)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.loadingLabel}}):_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.ariaLabel,\"checked\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:checked\":_vm.onSelectionChange}})],1)\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 */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n * @param {...any} args\n */\nexport const useKeyboardStore = function (...args) {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n },\n });\n const keyboardStore = store(...args);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","import { render, staticRenderFns } from \"./FileEntryCheckbox.vue?vue&type=template&id=c405f2b8\"\nimport script from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\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","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-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=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\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!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\nimport script from \"./FileMultiple.vue?vue&type=script&lang=js\"\nexport * from \"./FileMultiple.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-multiple-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\":\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list-drag-image\"},[_c('span',{staticClass:\"files-list-drag-image__icon\"},[_c('span',{ref:\"previewImg\"}),_vm._v(\" \"),(_vm.isSingleFolder)?_c('FolderIcon'):_c('FileMultipleIcon')],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list-drag-image__name\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"","\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!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=01562099\"\nimport script from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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","import DragAndDropPreview from '../components/DragAndDropPreview.vue';\nimport Vue from 'vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\nexport const getDragAndDropPreview = async (nodes) => {\n return new Promise((resolve) => {\n if (!preview) {\n preview = new Preview().$mount();\n document.body.appendChild(preview.$el);\n }\n preview.update(nodes);\n preview.$on('loaded', () => {\n resolve(preview.$el);\n preview.$off('loaded');\n });\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { extname } from 'path';\nimport { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { showError } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { vOnClickOutside } from '@vueuse/components';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nimport logger from '../logger.ts';\nVue.directive('onClickOutside', vOnClickOutside);\nconst actions = getFileActions();\nexport default defineComponent({\n props: {\n source: {\n type: [Folder, NcFile, Node],\n required: true,\n },\n nodes: {\n type: Array,\n required: true,\n },\n filesListWidth: {\n type: Number,\n default: 0,\n },\n isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\n dragover: false,\n gridMode: false,\n };\n },\n computed: {\n fileid() {\n return this.source.fileid ?? 0;\n },\n uniqueId() {\n return hashCode(this.source.source);\n },\n isLoading() {\n return this.source.status === NodeStatus.LOADING;\n },\n /**\n * The display name of the current node\n * Either the nodes filename or a custom display name (e.g. for shares)\n */\n displayName() {\n // basename fallback needed for apps using old `@nextcloud/files` prior 3.6.0\n return this.source.displayname || this.source.basename;\n },\n /**\n * The display name without extension\n */\n basename() {\n if (this.extension === '') {\n return this.displayName;\n }\n return this.displayName.slice(0, 0 - this.extension.length);\n },\n /**\n * The extension of the file\n */\n extension() {\n if (this.source.type === FileType.Folder) {\n return '';\n }\n return extname(this.displayName);\n },\n draggingFiles() {\n return this.draggingStore.dragging;\n },\n selectedFiles() {\n return this.selectionStore.selected;\n },\n isSelected() {\n return this.selectedFiles.includes(this.source.source);\n },\n isRenaming() {\n return this.renamingStore.renamingNode === this.source;\n },\n isRenamingSmallScreen() {\n return this.isRenaming && this.filesListWidth < 512;\n },\n isActive() {\n return String(this.fileid) === String(this.currentFileId);\n },\n /**\n * Check if the source is in a failed state after an API request\n */\n isFailedSource() {\n return this.source.status === NodeStatus.FAILED;\n },\n canDrag() {\n if (this.isRenaming) {\n return false;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return false;\n }\n const canDrag = (node) => {\n return (node?.permissions & Permission.UPDATE) !== 0;\n };\n // If we're dragging a selection, we need to check all files\n if (this.selectedFiles.length > 0) {\n const nodes = this.selectedFiles.map(source => this.filesStore.getNode(source));\n return nodes.every(canDrag);\n }\n return canDrag(this.source);\n },\n canDrop() {\n if (this.source.type !== FileType.Folder) {\n return false;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return false;\n }\n // If the current folder is also being dragged, we can't drop it on itself\n if (this.draggingFiles.includes(this.source.source)) {\n return false;\n }\n return (this.source.permissions & Permission.CREATE) !== 0;\n },\n openedMenu: {\n get() {\n return this.actionsMenuStore.opened === this.uniqueId.toString();\n },\n set(opened) {\n // If the menu is opened on another file entry, we ignore closed events\n if (opened === false && this.actionsMenuStore.opened !== this.uniqueId.toString()) {\n return;\n }\n // If opened, we specify the current file id\n // else we set it to null to close the menu\n this.actionsMenuStore.opened = opened\n ? this.uniqueId.toString()\n : null;\n },\n },\n mtime() {\n // If the mtime is not a valid date, return it as is\n if (this.source.mtime && !isNaN(this.source.mtime.getDate())) {\n return this.source.mtime;\n }\n if (this.source.crtime && !isNaN(this.source.crtime.getDate())) {\n return this.source.crtime;\n }\n return null;\n },\n mtimeOpacity() {\n if (!this.mtime) {\n return {};\n }\n // The time when we start reducing the opacity\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n // everything older than the maxOpacityTime will have the same value\n const timeDiff = Date.now() - this.mtime.getTime();\n if (timeDiff < 0) {\n // this means we have an invalid mtime which is in the future!\n return {};\n }\n // inversed time difference from 0 to maxOpacityTime (which would mean today)\n const opacityTime = Math.max(0, maxOpacityTime - timeDiff);\n // 100 = today, 0 = 31 days ago or older\n const percentage = Math.round(opacityTime * 100 / maxOpacityTime);\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${percentage}%, var(--color-text-maxcontrast))`,\n };\n },\n /**\n * Sorted actions that are enabled for this node\n */\n enabledFileActions() {\n if (this.source.status === NodeStatus.FAILED) {\n return [];\n }\n return actions\n .filter(action => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled([this.source], this.currentView);\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n },\n defaultFileAction() {\n return this.enabledFileActions.find((action) => action.default !== undefined);\n },\n },\n watch: {\n /**\n * When the source changes, reset the preview\n * and fetch the new one.\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n // Checking if the menu is really closed and not\n // just a change in the open state to another file entry.\n if (this.actionsMenuStore.opened === null) {\n // Reset any right menu position potentially set\n logger.debug('All actions menu closed, resetting right menu position...');\n const root = this.$el?.closest('main.app-content');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\n // Reset the preview state\n this.$refs?.preview?.reset?.();\n // Close menu\n this.openedMenu = false;\n },\n // Open the actions menu on right click\n onRightClick(event) {\n // If already opened, fallback to default browser\n if (this.openedMenu) {\n return;\n }\n // Ignore right click if the node is not available\n if (this.isFailedSource) {\n return;\n }\n // The grid mode is compact enough to not care about\n // the actions menu mouse position\n if (!this.gridMode) {\n // Actions menu is contained within the app content\n const root = this.$el?.closest('main.app-content');\n const contentRect = root.getBoundingClientRect();\n // Using Math.min/max to prevent the menu from going out of the AppContent\n // 200 = max width of the menu\n logger.debug('Setting actions menu position...');\n root.style.setProperty('--mouse-pos-x', Math.max(0, event.clientX - contentRect.left - 200) + 'px');\n root.style.setProperty('--mouse-pos-y', Math.max(0, event.clientY - contentRect.top) + 'px');\n }\n else {\n // Reset any right menu position potentially set\n const root = this.$el?.closest('main.app-content');\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n // If the clicked row is in the selection, open global menu\n const isMoreThanOneSelected = this.selectedFiles.length > 1;\n this.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId.toString();\n // Prevent any browser defaults\n event.preventDefault();\n event.stopPropagation();\n },\n execDefaultAction(event) {\n // Ignore click if we are renaming\n if (this.isRenaming) {\n return;\n }\n // Ignore right click (button & 2) and any auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return;\n }\n // if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab\n // also if there is no default action use this as a fallback\n const metaKeyPressed = event.ctrlKey || event.metaKey || event.button === 1;\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (isPublicShare() && !isDownloadable(this.source)) {\n return;\n }\n const url = isPublicShare()\n ? this.source.encodedSource\n : generateUrl('/f/{fileId}', { fileId: this.fileid });\n event.preventDefault();\n event.stopPropagation();\n // Open the file in a new tab if the meta key or the middle mouse button is clicked\n window.open(url, metaKeyPressed ? '_blank' : '_self');\n return;\n }\n // every special case handled so just execute the default action\n event.preventDefault();\n event.stopPropagation();\n // Execute the first default action if any\n this.defaultFileAction.exec(this.source, this.currentView, this.currentDir);\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.([this.source], this.currentView)) {\n sidebarAction.exec(this.source, this.currentView, this.currentDir);\n }\n },\n onDragOver(event) {\n this.dragover = this.canDrop;\n if (!this.canDrop) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n // Handle copy/move drag and drop\n if (event.ctrlKey) {\n event.dataTransfer.dropEffect = 'copy';\n }\n else {\n event.dataTransfer.dropEffect = 'move';\n }\n },\n onDragLeave(event) {\n // Counter bubbling, make sure we're ending the drag\n // only when we're leaving the current element\n const currentTarget = event.currentTarget;\n if (currentTarget?.contains(event.relatedTarget)) {\n return;\n }\n this.dragover = false;\n },\n async onDragStart(event) {\n event.stopPropagation();\n if (!this.canDrag || !this.fileid) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n logger.debug('Drag started', { event });\n // Make sure that we're not dragging a file like the preview\n event.dataTransfer?.clearData?.();\n // Reset any renaming\n this.renamingStore.$reset();\n // Dragging set of files, if we're dragging a file\n // that is already selected, we use the entire selection\n if (this.selectedFiles.includes(this.source.source)) {\n this.draggingStore.set(this.selectedFiles);\n }\n else {\n this.draggingStore.set([this.source.source]);\n }\n const nodes = this.draggingStore.dragging\n .map(source => this.filesStore.getNode(source));\n const image = await getDragAndDropPreview(nodes);\n event.dataTransfer?.setDragImage(image, -10, -10);\n },\n onDragEnd() {\n this.draggingStore.reset();\n this.dragover = false;\n logger.debug('Drag ended');\n },\n async onDrop(event) {\n // skip if native drop like text drag and drop from files names\n if (!this.draggingFiles && !event.dataTransfer?.items?.length) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n // Caching the selection\n const selection = this.draggingFiles;\n const items = [...event.dataTransfer?.items || []];\n // We need to process the dataTransfer ASAP before the\n // browser clears it. This is why we cache the items too.\n const fileTree = await dataTransferToFileTree(items);\n // We might not have the target directory fetched yet\n const contents = await this.currentView?.getContents(this.source.path);\n const folder = contents?.folder;\n if (!folder) {\n showError(this.t('files', 'Target folder does not exist any more'));\n return;\n }\n // If another button is pressed, cancel it. This\n // allows cancelling the drag with the right click.\n if (!this.canDrop || event.button) {\n return;\n }\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder, selection, fileTree });\n // Check whether we're uploading files\n if (selection.length === 0 && fileTree.contents.length > 0) {\n await onDropExternalFiles(fileTree, folder, contents.contents);\n return;\n }\n // Else we're moving/copying files\n const nodes = selection.map(source => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, folder, contents.contents, isCopy);\n // Reset selection after we dropped the files\n // if the dropped files are within the selection\n if (selection.some(source => this.selectedFiles.includes(source))) {\n logger.debug('Dropped selection, resetting select store...');\n this.selectionStore.reset();\n }\n },\n t,\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Simple non-secure hashing function similar to Java's `hashCode`\n * @param str The string to hash\n * @return {number} a non secure hash of the string\n */\nexport const hashCode = function (str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return (hash >>> 0);\n};\n","import { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n * @param node The node to check\n * @return True if downloadable, false otherwise\n */\nexport function isDownloadable(node) {\n if ((node.permissions & Permission.READ) === 0) {\n return false;\n }\n // check hide-download property of shares\n if (node.attributes['hide-download'] === true\n || node.attributes['hide-download'] === 'true') {\n return false;\n }\n // If the mount type is a share, ensure it got download permissions.\n if (node.attributes['share-attributes']) {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] || '[]');\n const downloadAttribute = shareAttributes.find(({ scope, key }) => scope === 'permissions' && key === 'download');\n if (downloadAttribute !== undefined) {\n return downloadAttribute.value === true;\n }\n }\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRenaming)?_c('form',{directives:[{name:\"on-click-outside\",rawName:\"v-on-click-outside\",value:(_vm.onRename),expression:\"onRename\"}],ref:\"renameForm\",staticClass:\"files-list__row-rename\",attrs:{\"aria-label\":_vm.t('files', 'Rename file')},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onRename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"renameInput\",attrs:{\"label\":_vm.renameLabel,\"autofocus\":true,\"minlength\":1,\"required\":true,\"value\":_vm.newName,\"enterkeyhint\":\"done\"},on:{\"update:value\":function($event){_vm.newName=$event},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.stopRenaming.apply(null, arguments)}}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\n/**\n * Get the validity of a filename (empty if valid).\n * This can be used for `setCustomValidity` on input elements\n * @param name The filename\n * @param escape Escape the matched string in the error (only set when used in HTML)\n */\nexport function getFilenameValidity(name, escape = false) {\n if (name.trim() === '') {\n return t('files', 'Filename must not be empty.');\n }\n try {\n validateFilename(name);\n return '';\n }\n catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('files', '\"{char}\" is not allowed inside a filename.', { char: error.segment }, undefined, { escape });\n case InvalidFilenameErrorReason.ReservedName:\n return t('files', '\"{segment}\" is a reserved name and not allowed for filenames.', { segment: error.segment }, undefined, { escape: false });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('files', '\"{extension}\" is not an allowed filetype.', { extension: error.segment }, undefined, { escape: false });\n }\n return t('files', 'Filenames must not end with \"{extension}\".', { extension: error.segment }, undefined, { escape: false });\n default:\n return t('files', 'Invalid filename.');\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"","\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!./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&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!./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryName.vue?vue&type=template&id=08f77d70&scoped=true\"\nimport script from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&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 \"08f77d70\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?[(_vm.dragover)?_vm._m(0):[_vm._m(1),_vm._v(\" \"),(_vm.folderOverlay)?_c(_vm.folderOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay\"}):_vm._e()]]:(_vm.previewUrl)?_c('span',{staticClass:\"files-list__row-icon-preview-container\"},[(_vm.hasBlurhash && (_vm.backgroundFailed === true || !_vm.backgroundLoaded))?_c('canvas',{ref:\"canvas\",staticClass:\"files-list__row-icon-blurhash\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.backgroundFailed !== true)?_c('img',{key:_vm.source.fileid,ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",class:{'files-list__row-icon-preview--loaded': _vm.backgroundFailed === false},attrs:{\"alt\":\"\",\"loading\":\"lazy\",\"src\":_vm.previewUrl},on:{\"error\":_vm.onBackgroundError,\"load\":_vm.onBackgroundLoad}}):_vm._e()]):_vm._m(2),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\"},[_vm._m(3)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay files-list__row-icon-overlay--file\"}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderOpenIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FileIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FavoriteIcon')\n}]\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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderOpenIcon\",\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!./FolderOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\nimport script from \"./FolderOpen.vue?vue&type=script&lang=js\"\nexport * from \"./FolderOpen.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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\"}},[(_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!./Key.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.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 key-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=\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"KeyIcon\",\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 \"./Key.vue?vue&type=template&id=499b3412\"\nimport script from \"./Key.vue?vue&type=script&lang=js\"\nexport * from \"./Key.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 key-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\":\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\"}},[(_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!./Network.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"NetworkIcon\",\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 \"./Network.vue?vue&type=template&id=7bf2ec80\"\nimport script from \"./Network.vue?vue&type=script&lang=js\"\nexport * from \"./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\"}},[(_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!./Tag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.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 tag-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=\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TagIcon\",\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 \"./Tag.vue?vue&type=template&id=356230e0\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.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 tag-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\":\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\"}},[(_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!./PlayCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.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 play-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=\"M10,16.5V7.5L16,12M12,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: \"PlayCircleIcon\",\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 \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\nimport script from \"./PlayCircle.vue?vue&type=script&lang=js\"\nexport * from \"./PlayCircle.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 play-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\":\"M10,16.5V7.5L16,12M12,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 \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.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!./CollectivesIcon.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<span :aria-hidden=\"!title\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"material-design-icon collectives-icon\"\n\t\trole=\"img\"\n\t\tv-bind=\"$attrs\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg :fill=\"fillColor\"\n\t\t\tclass=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 16 16\">\n\t\t\t<path d=\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\" />\n\t\t\t<path d=\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\" />\n\t\t\t<path d=\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\" />\n\t\t\t<path d=\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\" />\n\t\t\t<path d=\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\" />\n\t\t\t<path d=\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script>\nexport default {\n\tname: 'CollectivesIcon',\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfillColor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'currentColor',\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 24,\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=43528c7c\"\nimport script from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CollectivesIcon.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('span',_vm._b({staticClass:\"material-design-icon collectives-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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 16 16\"}},[_c('path',{attrs:{\"d\":\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"favorite-marker-icon\",attrs:{\"name\":_vm.t('files', 'Favorite'),\"svg\":_vm.StarSvg}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&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!./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FavoriteIcon.vue?vue&type=template&id=0b2a4155&scoped=true\"\nimport script from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&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 \"0b2a4155\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=24c5eabf\"\nimport script from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._g({staticClass:\"files-list__row\",class:{\n\t\t'files-list__row--dragover': _vm.dragover,\n\t\t'files-list__row--loading': _vm.isLoading,\n\t\t'files-list__row--active': _vm.isActive,\n\t},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag}},_vm.rowListeners),[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"source\":_vm.source,\"dragover\":_vm.dragover},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),_c('FileEntryActions',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRenamingSmallScreen),expression:\"!isRenamingSmallScreen\"}],ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__row-mime\",attrs:{\"title\":_vm.mime,\"data-cy-files-list-row-mime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.mime))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:(_vm.sizeOpacity),attrs:{\"data-cy-files-list-row-size\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=b5701628\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row\",class:{'files-list__row--active': _vm.isActive, 'files-list__row--dragover': _vm.dragover, 'files-list__row--loading': _vm.isLoading},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag},on:{\"contextmenu\":_vm.onRightClick,\"dragover\":_vm.onDragOver,\"dragleave\":_vm.onDragLeave,\"dragstart\":_vm.onDragStart,\"dragend\":_vm.onDragEnd,\"drop\":_vm.onDrop}},[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"dragover\":_vm.dragover,\"grid-mode\":true,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"grid-mode\":true,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"grid-mode\":true,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=f46658f4\"\nimport script from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\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,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"file-list-filters\"},[_c('div',{staticClass:\"file-list-filters__filter\",attrs:{\"data-cy-files-filters\":\"\"}},_vm._l((_setup.visualFilters),function(filter){return _c('span',{key:filter.id,ref:\"filterElements\",refInFor:true})}),0),_vm._v(\" \"),(_setup.activeChips.length > 0)?_c('ul',{staticClass:\"file-list-filters__active\",attrs:{\"aria-label\":_setup.t('files', 'Active filters')}},_vm._l((_setup.activeChips),function(chip,index){return _c('li',{key:index},[_c(_setup.NcChip,{attrs:{\"aria-label-close\":_setup.t('files', 'Remove filter'),\"icon-svg\":chip.icon,\"text\":chip.text},on:{\"close\":chip.onclick},scopedSlots:_vm._u([(chip.user)?{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"","\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!./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&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!./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=3d6bff7e&scoped=true\"\nimport script from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&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 \"3d6bff7e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mime\"}):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&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!./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableFooter.vue?vue&type=template&id=e916ded0&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&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 \"e916ded0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row-head\"},[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[_c('NcCheckboxRadioSwitch',_vm._b({attrs:{\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",attrs:{\"aria-sort\":_vm.ariaSortForMode('basename')}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mime\",class:{ 'files-list__column--sortable': _vm.isMimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'File type'),\"mode\":\"mime\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{ 'files-list__column--sortable': _vm.isSizeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('size')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mtime\",class:{ 'files-list__column--sortable': _vm.isMtimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mtime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Modified'),\"mode\":\"mtime\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column),attrs:{\"aria-sort\":_vm.ariaSortForMode(column.id)}},[(!!column.sort)?_c('FilesListTableHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\")])],1)})],2)\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 */\nimport Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nimport { useNavigation } from '../composables/useNavigation';\nexport default Vue.extend({\n setup() {\n const { currentView } = useNavigation();\n return {\n currentView,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection !== 'desc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{class:['files-list__column-sort-button', {\n\t\t'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode,\n\t\t'files-list__column-sort-button--size': _vm.sortingMode === 'size',\n\t}],attrs:{\"alignment\":_vm.mode === 'size' ? 'end' : 'start-reverse',\"type\":\"tertiary\",\"title\":_vm.name},on:{\"click\":function($event){return _vm.toggleSortBy(_vm.mode)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{staticClass:\"files-list__column-sort-button-icon\"}):_c('MenuDown',{staticClass:\"files-list__column-sort-button-icon\"})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"files-list__column-sort-button-text\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderButton.vue?vue&type=template&id=c3dbd7e0&scoped=true\"\nimport script from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&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 \"c3dbd7e0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"","\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!./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&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!./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeader.vue?vue&type=template&id=06480c18&scoped=true\"\nimport script from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&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 \"06480c18\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list__column files-list__row-actions-batch\",attrs:{\"data-cy-files-list-selection-actions\":\"\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"container\":\"#app-content-vue\",\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"","\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!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&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!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderActions.vue?vue&type=template&id=c463105a&scoped=true\"\nimport script from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&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 \"c463105a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",staticClass:\"files-list__filters\"},[_vm._t(\"filters\")],2),_vm._v(\" \"),(!!_vm.$scopedSlots['header-overlay'])?_c('div',{staticClass:\"files-list__thead-overlay\"},[_vm._t(\"header-overlay\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{ 'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'] }},[(_vm.caption)?_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.caption)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"files-list__thead\",attrs:{\"data-cy-files-list-thead\":\"\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"files-list__tbody\",style:(_vm.tbodyStyle),attrs:{\"data-cy-files-list-tbody\":\"\"}},_vm._l((_vm.renderedItems),function({key, item},i){return _c(_vm.dataComponent,_vm._b({key:key,tag:\"component\",attrs:{\"source\":item,\"index\":i}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=fed5a918\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"","\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!./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&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!./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&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!./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=1affbcbc&scoped=true\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&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 \"1affbcbc\",\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 */\nimport { t } from '@nextcloud/l10n';\n/**\n * Whether error is a WebDAVClientError\n * @param error - Any exception\n * @return {boolean} - Whether error is a WebDAVClientError\n */\nfunction isWebDAVClientError(error) {\n return error instanceof Error && 'status' in error && 'response' in error;\n}\n/**\n * Get a localized error message from webdav request\n * @param error - An exception from webdav request\n * @return {string} Localized error message for end user\n */\nexport function humanizeWebDAVError(error) {\n if (error instanceof Error) {\n if (isWebDAVClientError(error)) {\n const status = error.status || error.response?.status || 0;\n if ([400, 404, 405].includes(status)) {\n return t('files', 'Folder not found');\n }\n else if (status === 403) {\n return t('files', 'This operation is forbidden');\n }\n else if (status === 500) {\n return t('files', 'This directory is unavailable, please check the logs or contact the administrator');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"","\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!./FilesList.vue?vue&type=style&index=0&id=66f12ae6&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!./FilesList.vue?vue&type=style&index=0&id=66f12ae6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=66f12ae6&scoped=true\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=66f12ae6&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 \"66f12ae6\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=090ef702\"\nimport script from \"./FilesApp.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&lang=ts\"\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","import { generateUrl } from '@nextcloud/router';\nimport { relative } from 'path';\nimport queryString from 'query-string';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport Vue from 'vue';\nimport { useFilesStore } from '../store/files';\nimport { useNavigation } from '../composables/useNavigation';\nimport { usePathsStore } from '../store/paths';\nimport logger from '../logger';\nVue.use(Router);\n// Prevent router from throwing errors when we're already on the page we're trying to go to\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = (function (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated-navigation error but forward real exceptions\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)) {\n logger.debug('Ignoring duplicated navigation from vue-router', { error });\n }\n else {\n throw error;\n }\n}\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl('/apps/files'),\n linkActiveClass: 'active',\n routes: [\n {\n path: '/',\n // Pretending we're using the default view\n redirect: { name: 'filelist', params: { view: 'files' } },\n },\n {\n path: '/:view/:fileid(\\\\d+)?',\n name: 'filelist',\n props: true,\n },\n ],\n // Custom stringifyQuery to prevent encoding of slashes in the url\n stringifyQuery(query) {\n const result = queryString.stringify(query).replace(/%2F/gmi, '/');\n return result ? ('?' + result) : '';\n },\n});\n// If navigating back from a folder to a parent folder,\n// we need to keep the current dir fileid so it's highlighted\n// and scrolled into view.\nrouter.beforeEach((to, from, next) => {\n if (to.params?.parentIntercept) {\n delete to.params.parentIntercept;\n next();\n return;\n }\n const fromDir = (from.query?.dir || '/');\n const toDir = (to.query?.dir || '/');\n // We are going back to a parent directory\n if (relative(fromDir, toDir) === '..') {\n const { currentView } = useNavigation();\n const { getNode } = useFilesStore();\n const { getPath } = usePathsStore();\n if (!currentView.value?.id) {\n logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir });\n return next();\n }\n // Get the previous parent's file id\n const fromSource = getPath(currentView.value?.id, fromDir);\n if (!fromSource) {\n logger.error('No source found for the parent directory', { fromDir, toDir });\n return next();\n }\n const fileId = getNode(fromSource)?.fileid;\n if (!fileId) {\n logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource });\n return next();\n }\n logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId });\n next({\n name: 'filelist',\n query: to.query,\n params: {\n ...to.params,\n fileid: String(fileId),\n // Prevents the beforeEach from being called again\n parentIntercept: 'true',\n },\n // Replace the current history entry\n replace: true,\n });\n }\n // else, we just continue\n next();\n});\nexport default router;\n","export default class RouterService {\n // typescript compiles this to `#router` to make it private even in JS,\n // but in TS it needs to be called without the visibility specifier\n router;\n constructor(router) {\n this.router = router;\n }\n get name() {\n return this.router.currentRoute.name;\n }\n get query() {\n return this.router.currentRoute.query || {};\n }\n get params() {\n return this.router.currentRoute.params || {};\n }\n /**\n * This is a protected getter only for internal use\n * @private\n */\n get _router() {\n return this.router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this.router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this.router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","import { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { getPinia } from './store/index.ts';\nimport { registerHotkeys } from './services/HotKeysService.ts';\nimport FilesApp from './FilesApp.vue';\nimport router from './router/router';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n__webpack_nonce__ = getCSPNonce();\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nif (!window.OCP.Files.Router) {\n const Router = new RouterService(router);\n Object.assign(window.OCP.Files, { Router });\n}\n// Init Pinia store\nVue.use(PiniaVuePlugin);\n// Init HotKeys AFTER pinia is set up\nregisterHotkeys();\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\nconst FilesAppVue = Vue.extend(FilesApp);\nnew FilesAppVue({\n router: window.OCP.Files.Router._router,\n pinia: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey';\nimport { dirname } from 'path';\nimport { action as deleteAction } from '../actions/deleteAction.ts';\nimport { action as favoriteAction } from '../actions/favoriteAction.ts';\nimport { action as renameAction } from '../actions/renameAction.ts';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport logger from '../logger.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport const registerHotkeys = function () {\n // d opens the sidebar\n useHotKey('d', () => executeAction(sidebarAction), {\n stop: true,\n prevent: true,\n });\n // F2 renames the file\n useHotKey('F2', () => executeAction(renameAction), {\n stop: true,\n prevent: true,\n });\n // s toggle favorite\n useHotKey('s', () => executeAction(favoriteAction), {\n stop: true,\n prevent: true,\n });\n // Delete deletes the file\n useHotKey('Delete', () => executeAction(deleteAction), {\n stop: true,\n prevent: true,\n });\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n};\nconst goToParentDir = function () {\n const params = window.OCP.Files.Router?.params || {};\n const query = window.OCP.Files.Router?.query || {};\n const currentDir = (query?.dir || '/');\n const parentDir = dirname(currentDir);\n logger.debug('Navigating to parent directory', { parentDir });\n window.OCP.Files.Router.goToRoute(null, { ...params }, { ...query, dir: parentDir });\n};\nconst toggleGridView = function () {\n const userConfigStore = useUserConfigStore();\n const value = userConfigStore?.userConfig?.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\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 Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\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 Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\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, `.files-list__row-actions-batch[data-v-c463105a]{flex:1 1 100% !important;max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\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, `.files-list__column[data-v-06480c18]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-06480c18]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\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, `.favorite-marker-icon[data-v-0b2a4155]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 26px !important;\\n\\t\\t\\theight: 26px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialUserConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n grid_view: false,\n show_mime_column: true,\n show_dialog_file_extension: true,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\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, `tr[data-v-e916ded0]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-e916ded0]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__row-action[data-v-7f0265e5]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-7f0265e5]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-7f0265e5] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA\",\"sourcesContent\":[\"\\n.files-list__row-action {\\n\\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\\n\\n\\t// inline icons can have clickable area size so they still fit into the row\\n\\t&.files-list__row-action--inline {\\n\\t\\t--max-icon-size: var(--default-clickable-area);\\n\\t}\\n\\n\\t// Some icons exceed the default size so we need to enforce a max width and height\\n\\t.files-list__row-action-icon :deep(svg) {\\n\\t\\tmax-height: var(--max-icon-size) !important;\\n\\t\\tmax-width: var(--max-icon-size) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropPreview.vue\"],\"names\":[],\"mappings\":\"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 32px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\tpadding: 6px 12px;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: 12px;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t.files-list__row-icon + .files-list__row-icon {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\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, `button.files-list__row-name-link[data-v-08f77d70]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-08f77d70]:active{background-color:unset !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryName.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-list-filters[data-v-3d6bff7e]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-3d6bff7e]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-3d6bff7e]{flex:0 1 fit-content}.file-list-filters__active[data-v-3d6bff7e]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilters.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA\",\"sourcesContent\":[\"\\n.file-list-filters {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: var(--default-grid-baseline);\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\n\\t&__filter {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\tjustify-content: start;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\n\\t\\t> * {\\n\\t\\t\\tflex: 0 1 fit-content;\\n\\t\\t}\\n\\t}\\n\\n\\t&__active {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\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, `.files-list__breadcrumbs[data-v-7b525302]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-7b525302] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-7b525302]{flex-direction:column !important;align-items:flex-start !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin-block: 0;\\n\\tmargin-inline: 10px;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column-sort-button[data-v-c3dbd7e0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-c3dbd7e0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-c3dbd7e0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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, `.toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-66f12ae6]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-66f12ae6]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-66f12ae6]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-66f12ae6]{flex:0 0}.files-list__header-share-button[data-v-66f12ae6]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-66f12ae6]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-66f12ae6]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__before[data-v-66f12ae6]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-66f12ae6]{display:flex;height:100%}.files-list__refresh-icon[data-v-66f12ae6]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-66f12ae6]{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-share-button {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t\\t\\t&--shared {\\n\\t\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t\\tmargin-inline: calc(var(--default-grid-baseline) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__before {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list[data-v-1affbcbc]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-1affbcbc]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-1affbcbc] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-1affbcbc] tbody tr{contain:strict}.files-list[data-v-1affbcbc] tbody tr:hover,.files-list[data-v-1affbcbc] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-1affbcbc] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-1affbcbc] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-1affbcbc] .files-list__table{display:block}.files-list[data-v-1affbcbc] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-1affbcbc] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-1affbcbc] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-1affbcbc] .files-list__thead,.files-list[data-v-1affbcbc] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-1affbcbc] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-1affbcbc] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-1affbcbc] td,.files-list[data-v-1affbcbc] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-1affbcbc] td span,.files-list[data-v-1affbcbc] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-1affbcbc] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-1affbcbc] .files-list__row-checkbox{justify-content:center}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-1affbcbc] .files-list__row:hover,.files-list[data-v-1affbcbc] .files-list__row:focus,.files-list[data-v-1affbcbc] .files-list__row:active,.files-list[data-v-1affbcbc] .files-list__row--active,.files-list[data-v-1affbcbc] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-1affbcbc] .files-list__row:hover>*,.files-list[data-v-1affbcbc] .files-list__row:focus>*,.files-list[data-v-1affbcbc] .files-list__row:active>*,.files-list[data-v-1affbcbc] .files-list__row--active>*,.files-list[data-v-1affbcbc] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-1affbcbc] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-1affbcbc] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-1affbcbc] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-1affbcbc] .files-list__row-icon *{cursor:pointer}.files-list[data-v-1affbcbc] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-1affbcbc] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-1affbcbc] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-1affbcbc] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-1affbcbc] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-1affbcbc] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-1affbcbc] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-1affbcbc] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-1affbcbc] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-1affbcbc] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-1affbcbc] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-1affbcbc] .files-list__row-actions{width:auto}.files-list[data-v-1affbcbc] .files-list__row-actions~td,.files-list[data-v-1affbcbc] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-1affbcbc] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-1affbcbc] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-1affbcbc] .files-list__row-mime,.files-list[data-v-1affbcbc] .files-list__row-mtime,.files-list[data-v-1affbcbc] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-1affbcbc] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-1affbcbc] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-1affbcbc] .files-list__row-mime{width:calc(var(--row-height)*2.5)}.files-list[data-v-1affbcbc] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-1affbcbc] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 32px;\\n\\n\\t--fixed-block-start-position: var(--default-clickable-area);\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(.file-list-filters__active) {\\n\\t\\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-error);\\n\\t\\t\\t\\t\\tcolor: red;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime,\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\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, `.files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropNotice.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 55px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\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, `.setting-link[data-v-9a0994e0]:hover{text-decoration:underline}.shortcut-key[data-v-9a0994e0]{width:160px;white-space:normal}.shortcut-key span[data-v-9a0994e0]{white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\\n.shortcut-key {\\n\\twidth: 160px;\\n\\t// some shortcuts are too long to fit in one line\\n\\twhite-space: normal;\\n\\tspan {\\n\\t\\t// force portion of a shortcut on a new line for nicer display\\n\\t\\twhite-space: nowrap;\\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, `.app-navigation-entry__settings-quota[data-v-d3cdbf54]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-d3cdbf54] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-d3cdbf54]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\\n\\n\\t&--not-unlimited :deep(.app-navigation-entry__name) {\\n\\t\\tline-height: 1;\\n\\t\\tmargin-top: var(--app-navigation-quota-margin);\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: var(--app-navigation-quota-margin);\\n\\t\\tmargin-inline-start: var(--default-clickable-area);\\n\\t\\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\\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, `.app-navigation[data-v-084c464a] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-084c464a]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-084c464a]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-084c464a]{height:100%}.files-navigation[data-v-084c464a] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t&__list {\\n\\t\\theight: 100%; // Fill all available space for sticky views\\n\\t}\\n\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import '../assets/index-BrcnDXgp.css';\nimport { getSharingToken, isPublicShare } from \"@nextcloud/sharing/public\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { formatFileSize, Folder, davRemoteURL, davRootPath, Permission, FileType, davGetClient, validateFilename, InvalidFilenameError, getUniqueName, getNewFileMenuEntries, NewMenuEntryCategory } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getBaseUrl, generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay, isNetworkOrIdempotentRequestError } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport NcActionCaption from \"@nextcloud/vue/dist/Components/NcActionCaption.js\";\nimport NcActionSeparator from \"@nextcloud/vue/dist/Components/NcActionSeparator.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport NcProgressBar from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { spawnDialog, showInfo, showWarning } from \"@nextcloud/dialogs\";\nconst gtBuilder = getGettextBuilder().detectLocale();\n[{ \"locale\": \"af\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: af\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ar\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Ali <alimahwer@yahoo.com>, 2025\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ar\", \"Plural-Forms\": \"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;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nabu.s3ud, 2024\\nAli <alimahwer@yahoo.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Ali <alimahwer@yahoo.com>, 2025\\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: 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;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" هو اسم ممنوع لملف أو مجلد.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" هو نوع ممنوع أن يكون لملف.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" هو غير مسموح به في اسم ملف أو مجلد.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} متبقية\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"بضع ثوانٍ متبقية\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"تجميع\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"إلغاء\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"إلغاء عمليات رفع الملفات\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"إستمر\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"إنشاء جديد\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"الإصدار الحالي\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"تعذّرت إعادة تجميع الكتل معاً \"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"تعذّر رفع الملف\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['غير مسموح ان ينتهي اسم الملف بـ \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"اسم ملف غير صحيح\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"تاريخ آخر تعديل غير معروف\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"اسم ملف جديد\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخة جديدة\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مُجمَّد\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"معاينة الصورة\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغيير التسمية\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"حدِّد كل الملفات الجديدة\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"تخطِّي\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"حجم غير معلوم\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"رفع الملفات\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"رفع ملفات\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"رفع مجلدات\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"الرفع من جهاز \"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"تمّ إلغاء عملية رفع الملفات\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"تمّ تجاوز الرفع\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['رفع \"{folder}\" تمّ تجاوزه'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { \"locale\": \"ast\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nenolp <enolp@softastur.org>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp <enolp@softastur.org>, 2023\\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden unos segundos\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Encaboxar les xubes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Siguir\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando'l tiempu que falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"La data de la última modificación ye desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en posa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar toles caxelles\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Encaboxóse la xuba\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Xubir ficheros\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { \"locale\": \"az\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRashad Aliyev <microphprashad@gmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: az\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} qalıb\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir neçə saniyə qalıb\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Əlavə et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yükləməni imtina et\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Təxmini qalan vaxt\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauzadadır\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Faylları yüklə\"] } } } } }, { \"locale\": \"be\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: be\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bg\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bg_BG\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bn_BD\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bn_BD\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"br\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bs\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ca\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2022\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segons\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Queden uns segons\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Afegeix\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"S'està estimant el temps restant\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"En pausa\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2025\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\\nMartin Hankovec, 2024\\nAppukonrad <appukonrad@gmail.com>, 2024\\nPavel Borecki <pavel.borecki@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2025\\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít jako název souboru či složky.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ není povoleného typu souboru.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít v rámci názvu souboru či složky.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\", \"zbývají {seconds}\", \"zbývá {seconds}\", \"zbývají {seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"zbývá {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zbývá několik sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sestavování\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušit\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušit nahrávání\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvořit nový\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhaduje se zbývající čas\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Shluky se nepodařilo dát dohromady\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Soubor se nepodařilo nahrát\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Názvy souborů nemohou končit na „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný název souboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Neznámé datum poslední úpravy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový název souboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastaveno\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhled obrázku\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Přejmenovat\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat veškeré nové soubory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Přeskočit\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit {count} soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznámá velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrát\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrát soubory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrát složky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrát ze zařízení\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávání bylo zrušeno\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrání bylo přeskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Nahrání „{folder}“ bylo přeskočeno\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory si přejete ponechat?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { \"locale\": \"cy_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cy_GB\\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"da\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2025\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde <Martin@maboni.dk>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Bonde <Martin@maboni.dk>, 2025\\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tilladt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\", \"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samling\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuller\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuller uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opret ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimering af resterende tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Mislykkedes at samle stumperne sammen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunne ikke uploade filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvisning af billede\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøb\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vælg alle felter\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Spring over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload fra enhed\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload er blevet annulleret\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer ønsker du at beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { \"locale\": \"de\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2025\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\\nMartin Wilichowski, 2025\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\\nMario Siegmann <mario_siegmann@web.de>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Das Zusammenfügen der Teile ist fehlgeschlagen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Das Hochladen der Datei ist fehlgeschlagen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchtest du behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"de_DE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2025\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMartin Wilichowski, 2025\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\\nMario Siegmann <mario_siegmann@web.de>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Das Zusammenfügen der Teile ist fehlgeschlagen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Beim Hochladen der Datei ist ein Fehler aufgetreten\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchten Sie behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"el\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Efstathios Iosifidis <iefstathios@gmail.com>, 2025\", \"Language-Team\": \"Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nEfstathios Iosifidis <iefstathios@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2025\\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Το \"{segment}\" είναι απαγορευμένο όνομα αρχείου ή φακέλου.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Το \"{segment}\" είναι απαγορευμένος τύπος αρχείου.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Το \"{segment}\" δεν επιτρέπεται μέσα στο όνομα ενός αρχείου ή φακέλου.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} αρχείο σε διένεξη\", \"{count} αρχεία σε διένεξη\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} αρχείο σε διένεξη στον φάκελο {dirname}\", \"{count} αρχεία σε διένεξη στον φάκελο {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Απομένει {seconds} δευτερόλεπτο\", \"Απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"απομένουν {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"συναρμολόγηση\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Ακύρωση\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Ακύρωση όλης της λειτουργίας\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ακύρωση μεταφορτώσεων\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Συνέχεια\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Δημιουργία νέου\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"εκτίμηση του χρόνου που απομένει\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Υπάρχουσα έκδοση\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Αποτυχία συναρμολόγησης των τμημάτων\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Αποτυχία μεταφόρτωσης του αρχείου\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Αν επιλέξετε και τις δύο εκδόσεις, το εισερχόμενο αρχείο θα έχει έναν αριθμό προσαρτημένο στο όνομά του.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Μη έγκυρο όνομα αρχείου\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Άγνωστη ημερομηνία τελευταίας τροποποίησης\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Νέο\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Νέο όνομα αρχείου\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Νέα έκδοση\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"σε παύση\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Προεπισκόπηση εικόνας\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Μετονομασία\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Επιλογή όλων των πλαισίων ελέγχου\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Επιλογή όλων των υπαρχόντων αρχείων\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Επιλογή όλων των νέων αρχείων\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Παράλειψη\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Παράλειψη αυτού του αρχείου\", \"Παράλειψη {count} αρχείων\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Άγνωστο μέγεθος\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Μεταφόρτωση\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Μεταφόρτωση αρχείων\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Μεταφόρτωση φακέλων\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Μεταφόρτωση από συσκευή\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Η μεταφόρτωση ακυρώθηκε\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Η μεταφόρτωση παραλείφθηκε\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Η μεταφόρτωση του \"{folder}\" παραλείφθηκε'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Πρόοδος μεταφόρτωσης\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Όταν επιλέγεται ένας εισερχόμενος φάκελος, όλα τα αρχεία σε διένεξη μέσα σε αυτόν θα αντικατασταθούν.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Όταν επιλέγεται ένας εισερχόμενος φάκελος, το περιεχόμενό του γράφεται στον υπάρχοντα φάκελο και εκτελείται αναδρομική επίλυση διενέξεων.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ποια αρχεία θέλετε να διατηρήσετε;\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Μπορείτε είτε να μετονομάσετε το αρχείο, να παραλείψετε αυτό το αρχείο ή να ακυρώσετε όλη τη λειτουργία.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία έκδοση κάθε αρχείου για να συνεχίσετε.\"] } } } } }, { \"locale\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2025\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndi Chandler <andi@gowling.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler <andi@gowling.com>, 2025\\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is a forbidden file or folder name.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is a forbidden file type.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is not allowed inside a file or folder name.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\", \"{seconds} seconds left\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} left\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"a few seconds left\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assembling\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Create new\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimating time left\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Failed assembling the chunks together\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Failed uploading the file\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filenames must not end with \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Invalid filename\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"New filename\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"paused\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Preview image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rename\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Skip\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unknown size\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload files\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload folders\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload from device\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload has been cancelled\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload has been skipped\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload of \"{folder}\" has been skipped'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload progress\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"You can either rename the file, skip this file or cancel the whole operation.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] } } } } }, { \"locale\": \"eo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\\nJulio C. Ortega, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2024\\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_419\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nALEJANDRO CASTRO, 2022\\n\" }, \"msgstr\": [\"Last-Translator: ALEJANDRO CASTRO, 2022\\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_419\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"agregar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] } } } } }, { \"locale\": \"es_AR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Matías Campo Hoet <matiascampo@gmail.com>, 2024\", \"Language-Team\": \"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_AR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa de imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Cargar archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Cargar carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Cargar desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Carga cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la carga\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_CL\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CL\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_DO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_DO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_EC\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_EC\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_GT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_GT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_HN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_HN\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_MX\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jehu Marcos Herrera Puentes, 2024\", \"Language-Team\": \"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJehu Marcos Herrera Puentes, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Jehu Marcos Herrera Puentes, 2024\\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_MX\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿Cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivo en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Cuáles archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_NI\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_NI\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PA\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PA\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PE\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_SV\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_SV\\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_UY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_UY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"et_EE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Priit Jõerüüt <transifex@joeruut.com>, 2025\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPriit Jõerüüt <transifex@joeruut.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Priit Jõerüüt <transifex@joeruut.com>, 2025\\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: et_EE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ on keelatud faili- või kausta nimi.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ on keelatud failitüüp.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ pole faili- või kausta nimes lubatud.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fail on vastuolus\", \"{count} faili on vastuolus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail on vastuolus „{dirname}“ kaustas\", \"{count} faili on vastuolus „{dirname}“ kaustas\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"jäänud {seconds} sekund\", \"jäänud {seconds} sekundit\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"aega jäänud {time} \"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"koostamisel\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Katkesta üleslaadimine\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Loo uus\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Tükkide koostamine üheks tervikuks ei õnnestunud\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Faili üleslaadimine ei õnnestunud\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Failinime lõpus ei tohi olla „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Vigane failinimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uus failinimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vaata pildi eelvaadet\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Muuda nime\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Jäta vahele\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Jäta vahele {count} fail\", \"Jäta vahele {count} faili\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta vahele see fail\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tundmatu suurus\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Laadi üles\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Laadi failid üles\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Laadi kaustad üles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Laadi üles seadmest\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Üleslaadimine on katkestatud\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Üleslaadimine on vahele jäetud\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}“ kausta üleslaadimine on vahele jäetud\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Üleslaadimise edenemine\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Milliseid faile soovid säilitada?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Jätkamiseks pead valima vähemalt ühe versiooni igast failist.\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} geratzen da\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"segundo batzuk geratzen dira\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Gehitu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ezeztatu igoerak\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"kalkulatutako geratzen den denbora\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"geldituta\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Igo fitxategiak\"] } } } } }, { \"locale\": \"fa\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Alireza Rashidi, 2025\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nreza reza <forghan89@yahoo.com>, 2024\\nAlireza Rashidi, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Alireza Rashidi, 2025\\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"{segment} یک نام فایل یا پوشه ممنوعه است.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"{segment} یک نوع فایل ممنوعه است.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"{segment} داخل نام فایل یا پوشه مجاز نیست.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} تداخل فایل\", \"{count} تداخل فایلها\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} پرونده با {dirname} ناسازگاری داشت\", \"{count} پرونده با {dirname} ناسازگاری داشت\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانیه مانده\", \"{seconds} ثانیه مانده\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} باقی مانده\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"چند ثانیه مانده\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"سرهم کردن\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"رد کردن\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"رد کردن کل عملیات\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"رد کردن بارگذاری\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"ادامه\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"ساخت جدید\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تخمین زمان باقی مانده\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"نگارش موجود\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"نتوانست تکههای را به سرهم کند\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"نتوانست پرونده را بارگذاری کند\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"نام پرونده نباید با {segment} پایان یابد.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"اگر هر دو نسخه را انتخاب کنید، یک عدد به نام پرونده ورودی اضافه خواهد شد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"نام پرونده نامعتبر\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"آخرین تاریخ تغییر نامشخص\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جدید\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"نام فایل جدید\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخه جدید\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مکث کردن\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"پیش نمایش تصویر\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغییر نام\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"انتخاب همه چکباکسها\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"انتخاب همه فایلهای موجود\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"انتخاب همه فایلهای جدید\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"رد شدن\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"رد شدن از \", \"رد شدن از {count} فایل\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"اندازه نامشخص\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"بارگذاری\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"بارگذاری پروندهها\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"بارگذاری پوشهها\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"بارگذاری از دستگاه\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"بارگذاری رد شده است\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"بارگذاری نادیده گرفته شده است\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"بارگذاری {folder} نادیده گرفته شده است\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"روند بارگذاری\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"هنگامی که یک پوشه ورودی انتخاب میشود، هر فایل متناقضی در آن نیز بازنویسی میشود.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"هنگامی که یک پوشه دریافتی انتخاب می شود ، محتوا در پوشه موجود نوشته می شود و حل ناسازگاری بازگشتی انجام می شود.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"کدام پروندهها را میخواهید نگه دارید؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"میتوانید نام پرونده را تغییر دهید، از این پرونده رد شوید یا کل عملیات را رد کنید.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"برای ادامه باید دستکم یک نگارش از هر پرونده را انتخاب کنید.\"] } } } } }, { \"locale\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\", \"Language-Team\": \"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nthingumy, 2024\\nteemue, 2024\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" on kielletty tiedoston tai hakemiston nimi.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" on kielletty tiedostotyyppi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ei ole sallittu tiedoston tai hakemiston nimessä.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} tiedoston ristiriita\", \"{count} tiedoston ristiriita\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tiedoston ristiriita kansiossa {dirname}\", \"{count} tiedoston ristiriita kansiossa {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunti jäljellä\", \"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} jäljellä\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"muutama sekunti jäljellä\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"kootaan\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Peruuta koko toimenpide\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Peruuta lähetykset\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jatka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Luo uusi\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"arvioidaan jäljellä olevaa aikaa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemassa oleva versio\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Palojen kokoaminen yhteen epäonnistui\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tiedoston lähetys epäonnistui\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tiedoston nimi ei saa päättyä \"{segment}\"'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Kielletty/väärä tiedoston nimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimeisin muokkauspäivä on tuntematon\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uusi tiedostonimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uusi versio\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"keskeytetty\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Esikatsele kuva\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Nimeä uudelleen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Valitse kaikki valintaruudut\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Valitse kaikki olemassa olevat tiedostot\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Valitse kaikki uudet tiedostot\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ohita\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ohita tämä tiedosto\", \"Ohita {count} tiedostoa\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tuntematon koko\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lähetä tiedostoja\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Lähetä kansioita\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Lähetä laitteelta\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Lähetys on peruttu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Lähetys on ohitettu\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Hakemiston \"{folder}\" lähetys on ohitettu'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Lähetyksen edistyminen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mitkä tiedostot haluat säilyttää?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi.\"] } } } } }, { \"locale\": \"fo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"fr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Lisa Cintosh, 2025\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nBenoit Pruneau, 2024\\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\\nJérôme HERBINET, 2024\\nacazenave, 2024\\nLisa Cintosh, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Lisa Cintosh, 2025\\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" est un nom de fichier ou de dossier interdit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" est un type de fichier interdit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde restante\", \"{seconds} secondes restantes\", \"{seconds} secondes restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restant\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quelques secondes restantes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuler les téléversements\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Créer un nouveau\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimation du temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Version existante\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Échec de l'assemblage des morceaux\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Échec du téléversement du fichier\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Le nom des fichiers ne doit pas finir par \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fichier invalide\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de la dernière modification est inconnue\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nouveau nom de fichier\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pause\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Aperçu de l'image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renommer\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Taille inconnue\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Téléverser\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Téléverser des fichiers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Téléverser des dossiers\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Téléverser depuis l'appareil\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Le téléversement a été annulé\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Le téléversement a été ignoré\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Le téléversement de \"{folder}\" a été ignoré'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progression du téléversement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { \"locale\": \"ga\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Aindriú Mac Giolla Eoin, 2025\", \"Language-Team\": \"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ga\", \"Plural-Forms\": \"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nAindriú Mac Giolla Eoin, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2025\\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ga\\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Is ainm toirmiscthe comhaid nó fillteáin é \"{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Is cineál comhaid toirmiscthe é \"{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`Ní cheadaítear \"{segment}\" taobh istigh d'ainm comhaid nó fillteáin.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} coimhlint comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} coimhlint comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} fágtha\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"cúpla soicind fágtha\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ag cur le chéile\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht iomlán\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cealaigh uaslódálacha\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Leanúint ar aghaidh\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Cruthaigh nua\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ag déanamh meastachán ar an am atá fágtha\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan láithreach \"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Theip ar na smután a chur le chéile le chéile\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Theip ar uaslódáil an chomhaid\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Níor cheart go gcríochnaíonn comhaid chomhad le \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ainm comhaid neamhbhailí\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta modhnaithe is déanaí anaithnid\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ainm comhaid nua\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"sos\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Íomhá réamhamharc\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Athainmnigh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh gach ticbhosca\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh gach comhad atá ann cheana féin\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Scipeáil\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad {count}\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Seachain an comhad seo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Méid anaithnid\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uaslódáil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Uaslódáil comhaid\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Uaslódáil fillteáin\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Íosluchtaigh ó ghléas\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Cuireadh an t-uaslódáil ar ceal\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Léiríodh an uaslódáil\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Léiríodh an uaslódáil \"{folder}\".'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uaslódáil dul chun cinn\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh.\"] } } } } }, { \"locale\": \"gd\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gd\\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"gl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» é un nome vedado para un ficheiro ou cartafol.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» é un tipo de ficheiro vedado.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"falta {seconds} segundo\", \"faltan {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"falta {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltan uns segundos\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancela toda a operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envíos\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear un novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calculando canto tempo falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Produciuse un fallo ao ensamblar os anacos\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Produciuse un fallo ao enviar o ficheiro\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Os nomes de ficheiros non deben rematar con «{segment}».\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"O nome de ficheiro non é válido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nova\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"detido\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa da imaxe\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño descoñecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar cartafoles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Enviar dende o dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O envío foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O envío foi omitido\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"O envío de «{folder}» foi omitido\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso do envío\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"he\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hi_IN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hi_IN\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hr\\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hsb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hsb\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\", \"Language-Team\": \"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Tiltott fájl- vagy mappanév: „{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Tiltott fájltípus: „{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Nem megengedett egy fájl- vagy mappanévben: „{segment}\".'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fájlt érintő konfliktus\", \"{count} fájlt érintő konfliktus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fájlt érintő konfliktus a mappában: {dirname}\", \"{count}fájlt érintő konfliktus a mappában: {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{} másodperc van hátra\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} van hátra\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"pár másodperc van hátra\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Teljes művelet megszakítása\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Feltöltések megszakítása\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tovább\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Új létrehozása\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hátralévő idő becslése\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Jelenlegi változat\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Fájlnevek nem végződhetnek erre: „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Érvénytelen fájlnév\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Utolsó módosítás dátuma ismeretlen\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Új fájlnév\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"szüneteltetve\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Kép előnézete\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Átnevezés\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Minden jelölőnégyzet kijelölése\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Minden jelenlegi fájl kijelölése\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Minden új fájl kijelölése\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Kihagyás\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ezen fájl kihagyása\", \"{count}fájl kihagyása\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ismeretlen méret\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Feltöltés\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fájlok feltöltése\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappák feltöltése\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Feltöltés eszközről\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Feltöltés meg lett szakítva\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Feltöltés át lett ugorva\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}” feltöltése át lett ugorva\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Feltöltési folyamat\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat kívánja megtartani?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz minden fájlból legalább egy verziót ki kell választani.\"] } } } } }, { \"locale\": \"hy\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hy\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ia\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ia\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"id\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nEmpty Slot Filler, 2023\\nLinerly <linerly@proton.me>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly <linerly@proton.me>, 2023\\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} detik tersisa\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tersisa\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Batalkan unggahan\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal perubahan terakhir tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"dijeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua berkas baru\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Lewati {count} berkas\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Unggahan dibatalkan\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { \"locale\": \"ig\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ig\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"is\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2025\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nSveinn í Felli <sv1@fellsnet.is>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2025\\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er bannað sem heiti á skrá eða möppu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er bönnuð skráartegund.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ekki leyfilegt innan í heiti á skrá eða möppu.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnda eftir\", \"{seconds} sekúndur eftir\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} eftir\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"nokkrar sekúndur eftir\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"set saman\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Hætta við\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Hætta við alla aðgerðina\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Búa til nýtt\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Mistókst að setja saman bútana\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Mistókst að senda inn skrána\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Skráaheiti mega ekki enda á \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ógilt skráarheiti\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nýtt skráarheiti\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Endurnefna\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velja gátreiti\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velja allar nýjar skrár\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Sleppa\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Óþekkt stærð\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Senda inn\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Senda inn möppur\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Senda inn frá tæki\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Hætt hefur verið við innsendingu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Innsendingu hefur verið sleppt\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Innsendingu á \"{folder}\" hefur verið sleppt'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Framvinda innsendingar\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { \"locale\": \"it\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"albanobattistella <albanobattistella@gmail.com>, 2024\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella <albanobattistella@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} rimanente\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alcuni secondi rimanenti\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare con \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { \"locale\": \"ja\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"test test, 2025\", \"Language-Team\": \"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nkojima.imamura, 2024\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\nkshimohata, 2024\\ntest test, 2025\\n\" }, \"msgstr\": [\"Last-Translator: test test, 2025\\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" は禁止されているファイルまたはフォルダ名です。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" は禁止されているファイルタイプです。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['ファイルまたはフォルダ名に \"{segment}\" を含めることはできません。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ファイル数の競合\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} で {count} 個のファイルが競合しています\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"残り{seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"残り {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"残り数秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"組み立て中\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセルする\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"アップロードをキャンセル\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"続ける\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新規作成\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"概算残り時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既存バージョン\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"チャンクを一緒に組み立てるのに失敗しました。\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"ファイルのアップロードに失敗しました。\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['ファイル名の末尾に \"{segment}\" を付けることはできません。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無効なファイル名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新しいファイル名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新しいバージョン\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"一時停止中\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"プレビュー画像\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"名前を変更\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべて選択\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"すべての既存ファイルを選択\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"スキップ\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"サイズ不明\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"アップロード\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"ファイルをアップロード\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"フォルダのアップロード\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"デバイスからのアップロード\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"アップロードはキャンセルされました\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"アップロードがスキップされました\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" のアップロードがスキップされました'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"アップロード進行状況\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを保持しますか?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。\"] } } } } }, { \"locale\": \"ka\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ka_GE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka_GE\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kab\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nZiriSut, 2023\\n\" }, \"msgstr\": [\"Last-Translator: ZiriSut, 2023\\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kab\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"qqiment-d kra n tesdatin kan\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Rnu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Sefsex asali\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"asizel n wakud i d-yeqqimen\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"yeḥbes\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Sali-d ifuyla\"] } } } } }, { \"locale\": \"kk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kk\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"km\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: km\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kn\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ko\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"이상오, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n이상오, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 이상오, 2024\\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 및 폴더 이름입니다.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 형식입니다.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['파일이나 폴더 이름에 \"{segment}\"(을)를 사용할 수 없습니다.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds}초 남음\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} 남음\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"곧 완료\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업을 취소\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"업로드 취소\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"확인\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"새로 만들기\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"남은 시간 계산\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"현재 버전\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['파일 이름은 \"{segment}\"(으)로 끝나야 합니다.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"잘못된 파일 이름\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"새 파일 이름\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"새 버전\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"일시정지됨\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"미리보기 이미지\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"이름 바꾸기\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"모든 체크박스 선택\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일을 모두 선택\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"새로운 파일을 모두 선택\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"크기를 알 수 없음\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"업로드\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"파일 업로드\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"폴더 업로드\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"장치에서 업로드\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"업로드가 취소되었습니다.\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"업로드를 건너뛰었습니다.\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 업로드를 건너뛰었습니다.'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"업로드 진행도\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일을 보존하시겠습니까?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { \"locale\": \"la\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: la\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lb\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lt_LT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Edgars Andersons, 2025\", \"Language-Team\": \"Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPapuass <martinsb@gmail.com>, 2024\\nArmīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024\\nEdgars Andersons, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Edgars Andersons, 2025\\nLanguage-Team: Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes vai mapes nosaukums.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes veids.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ir nav ļauts datnes vai mapes nosaukumā.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} nesaderīgu datņu\", \"{count} nesaderīga datne\", \"{count} nesaderīgas datnes\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} nesaderīgu datņu {dirname}\", \"{count} nesaderīga datne {dirname}\", \"{count} nesaderīgas datnes {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Atlikušas {seconds} sekundes\", \"Aatlikusi {seconds} sekunde\", \"Atlikušas {seconds} sekundes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"atlicis {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"atlikušas dažas sekundes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sakopo\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Atcelt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atcelt visu darbību\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Atcelt augšupielādes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Turpināt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Izveidot jaunu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"paredzamais atlikušais laiks\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Esošā versija\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Neizdevās apvienot gabalus\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Neizdevās augšupielādēt datni\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Datnes nosaukumi nedrīkst beigties ar \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nederīgs datnes nosaukums\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Pēdējais izmainīšanas datums nav zināms\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Jauns datnes nosaukums\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Jauna versija\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"apturēta\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Priekšskatīt attēlu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Pārdēvēt\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Atlasīt visas izvēles rūtiņas\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Atlasīt visas esošās datnes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Atlasīt visas jaunās datnes\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Izlaist\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Izlaist {count} datņu\", \"Izlaist šo datni\", \"Izlaist {count} datnes\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nezināms izmērs\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Augšupielādēt\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Augšupielādēt datnes\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Augšupielādēt mapes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Augšupielādēt no ierīces\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Augšupielāde tika atcelta\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Augšupielāde tika izlaista\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" augšupielāde tika izlaista'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Augšupielādes virzība\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kuras datnes paturēt?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu.\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nСашко Тодоров <sasetodorov@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"преостанува {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"уште неколку секунди\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Додади\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Прекини прикачување\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"приближно преостанато време\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Прикачување датотеки\"] } } } } }, { \"locale\": \"mn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nBATKHUYAG Ganbold, 2023\\n\" }, \"msgstr\": [\"Last-Translator: BATKHUYAG Ganbold, 2023\\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} үлдсэн\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"хэдхэн секунд үлдсэн\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Нэмэх\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Үлдсэн хугацааг тооцоолж байна\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"түр зогсоосон\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Файл илгээх\"] } } } } }, { \"locale\": \"mr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mr\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ms_MY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"locale\": \"my\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Roger Knutsen, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRoger Knutsen, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Roger Knutsen, 2024\\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tillatt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder igjen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} igjen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"noen få sekunder igjen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hele operasjonen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt opplastninger\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsett\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opprett ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Estimerer tid igjen\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Gjeldende versjon\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavn må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldig filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Siste gang redigert ukjent\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny versjon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvis bilde\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøp\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velg alle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hopp over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukjent størrelse\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Last opp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Last opp mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Last opp fra enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Opplastingen er kansellert\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Opplastingen er hoppet over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Opplasting av \"{folder}\" er hoppet over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fremdrift, opplasting\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { \"locale\": \"ne\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ne\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRico <rico-schwab@hotmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Nog {seconds} seconden\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{seconds} over\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Voeg toe\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploads annuleren\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Schatting van de resterende tijd\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Gepauzeerd\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Valdnet, 2025\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPiotr Strebski <strebski@gmail.com>, 2024\\nValdnet, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Valdnet, 2025\\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" to zabroniona nazwa pliku lub katalogu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" jest zabronionym typem pliku.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Znak \"{segment}\" nie jest dozwolony w nazwie pliku lub katalogu.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Pozostało {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Pozostało kilka sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anuluj wysyłanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nazwy plików nie mogą kończyć się na \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nieznany rozmiar\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Wyślij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Wyślij katalogi\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Wyślij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Wysyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Wysyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Wysyłanie \"{folder}\" zostało pominięte'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postęp wysyłania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu katalogu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu i przeprowadzane jest rekursywne rozwiązywanie konfliktów.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { \"locale\": \"ps\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ps\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pt_BR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"F Bausch, 2025\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\\nF Bausch, 2025\\n\" }, \"msgstr\": [\"Last-Translator: F Bausch, 2025\\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" é um nome de arquivo ou pasta proibido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" é um tipo de arquivo proibido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" não é permitido dentro de um nome de arquivo ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo restante\", \"{seconds} segundos restantes\", \"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alguns segundos restantes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montando\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao montar os pedaços juntos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao fazer o upload do arquivo\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes dos arquivos não devem terminar com \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de arquivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de arquivo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pular {count} arquivo\", \"Pular {count} arquivos\", \"Pular {count} arquivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pular este arquivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Fazer upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fazer upload de arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Fazer upload de pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Fazer upload do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O upload foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O upload foi pulado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O upload de \"{folder}\" foi pulado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso de upload\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando uma pasta recebida é selecionada, todos os arquivos conflitantes dentro dela também serão sobrescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta recebida é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { \"locale\": \"pt_PT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nManuela Silva <mmsrs@sky.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adicionar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envios\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ro\\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secunde rămase\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} rămas\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"câteva secunde rămase\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adaugă\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anulați încărcările\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimarea timpului rămas\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pus pe pauză\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Încarcă fișiere\"] } } } } }, { \"locale\": \"ru\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Александр, 2025\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nВлад, 2024\\nAlex <fedotov22091982@gmail.com>, 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Александр, 2025\\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» — это запрещенное имя файла или папки.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» — это запрещенный тип файла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» не допускается в имени файла или папки.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"конфликт {count} файла в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"осталась {seconds} секунда\", \"осталось {seconds} секунды\", \"осталось {seconds} секунд\", \"осталось {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"осталось {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"осталось несколько секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"сборка\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Отменить\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отменить операцию целиком\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Отменить загрузки\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Создать новое\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оценка оставшегося времени\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не удалось собрать части вместе\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Не удалось загрузить файл\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена файлов не должны заканчиваться на «{segment}»\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неверное имя файла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Новое имя файла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"приостановлено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Предварительный просмотр\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Переименовать\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустить\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Неизвестный размер\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Загрузить\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Загрузить файлы\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Загрузить папки\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Загрузить с устройства\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Загрузка была отменена\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Загрузка была пропущена\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Загрузка «{folder}» была пропущена\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Прогресс загрузки\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Вы можете переименовать файл, пропустить этот файл или отменить всю операцию.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { \"locale\": \"sc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sc\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"si\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tomas Rusnak <linkermail@gmail.com>, 2024\", \"Language-Team\": \"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJozef Gaal <preklady@mayday.sk>, 2024\\nTomas Rusnak <linkermail@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnd zostáva\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť tento súbor\", \"Preskočiť {count} súbory\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"locale\": \"sl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Simon Bogina, 2024\", \"Language-Team\": \"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJan Kraljič <jan.kraljic@patware.eu>, 2024\\nSimon Bogina, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Simon Bogina, 2024\\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" je prepovedano ime datoteka ali mape.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je prepovedan tip datoteke.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ni dovoljeno v imenu datoteke ali mape.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"1{count} datoteka je v konfliktu\", \"1{count} datoteki sta v konfiktu\", \"1{count} datotek je v konfliktu\", \"{count} datotek je v konfliktu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} datoteka je v konfiktu v {dirname}\", \"{count} datoteki sta v konfiktu v {dirname}\", \"{count} datotek je v konfiktu v {dirname}\", \"{count} konfliktov datotek v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"še {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"še {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"še nekaj sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Prekliči\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Prekliči celotni postopek\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Prekliči pošiljanje\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Nadaljuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Ustvari nov\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ocenjujem čas do konca\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Obstoječa različica\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Imena datotek se ne smejo končati s \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nepravilno ime datoteke\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum zadnje spremembe neznan\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo ime datoteke\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova različica\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"v premoru\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Predogled slike\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Preimenuj\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Izberi vsa potrditvena polja\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi vse obstoječe datoteke\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi vse nove datoteke\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskoči\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskoči datoteko\", \"Preskoči {count} datoteki\", \"Preskoči {count} datotek\", \"Preskoči {count} datotek\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznana velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Naloži\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Naloži datoteke\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Naloži mape\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Naloži iz naprave\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nalaganje je bilo preklicano\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nalaganje je bilo preskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nalaganje \"{folder}\" je bilo preskočeno'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Napredek nalaganja\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Katere datoteke želite obdržati?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Izbrati morate vsaj eno različico vsake datoteke da nadaljujete.\"] } } } } }, { \"locale\": \"sq\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Иван Пешић, 2024\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nИван Пешић, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2024\\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” је забрањено име фајла или фолдера.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” је забрањен тип фајла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}” није дозвољено унутар имена фајла или фолдера.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} преостало\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"преостало је неколико секунди\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отказује комплетну операцију\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Обустави отпремања\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Настави\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Креирај ново\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"процена преосталог времена\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Постојећа верзија\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена фајлова не смеју да се завршавају на „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако изаберете обе верзије, на име долазног фајла ће се додати број.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неисправно име фајла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Није познат датум последње измене\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ново име фајла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Слика прегледа\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Промени име\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изабери све нове фајлове\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Прескочи\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Непозната величина\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Отпреми\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Отпреми фајлове\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Отпреми фолдере\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Отпреми са уређаја\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Отпремање је отказано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Отпремање је прескочено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Отпремање „{folder}”је прескочено\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Напредак отпремања\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Које фајлове желите да задржите?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { \"locale\": \"sr@latin\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr@latin\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Magnus Höglund, 2025\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMagnus Höglund, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2025\\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" är ett förbjudet fil- eller mappnamn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" är en förbjuden filtyp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" är inte tillåtet i ett fil- eller mappnamn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvar\", \"{seconds} sekunder kvar\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kvarstår\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"några sekunder kvar\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"Sammanställer\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt uppladdningar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Skapa ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"uppskattar kvarstående tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Misslyckades med att sammanställa delarna\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunde inte ladda upp filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnamn får inte sluta med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ogiltigt filnamn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnamn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausad\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Förhandsgranska bild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Byt namn\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hoppa över\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Okänd storlek\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Ladda upp\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Ladda upp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ladda upp mappar\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Ladda upp från enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Uppladdningen har avbrutits\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Uppladdningen har hoppats över\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Uppladdningen av \"{folder}\" har hoppats över'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { \"locale\": \"sw\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sw\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ta\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"th\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"เหลืออีก {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"เหลืออีกไม่กี่วินาที\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"เพิ่ม\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"กำลังคำนวณเวลาที่เหลือ\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"หยุดชั่วคราว\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"อัปโหลดไฟล์\"] } } } } }, { \"locale\": \"tk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tk\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"tr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2025\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nKaya Zeren <kayazeren@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2025\\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" dosya ya da klasör adına izin verilmiyor.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" dosya türüne izin verilmiyor.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Bir dosya ya da klasör adında \"{segment}\" ifadesine izin verilmiyor.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\", \"{seconds} saniye kaldı\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kaldı\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir kaç saniye kaldı\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"birleştiriliyor\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yüklemeleri iptal et\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yeni ekle\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"öngörülen kalan süre\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Parçalar birleştirilemedi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Dosya yüklenemedi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dosya adları \"{segment}\" ile bitmemeli.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Dosya adı geçersiz\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yeni dosya adı\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"duraklatıldı\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Görsel ön izlemesi\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Yeniden adlandır\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Atla\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} dosyayı atla\", \"{count} dosyayı atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu dosyayı atla\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Boyut bilinmiyor\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yükle\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dosyaları yükle\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Klasörleri yükle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Aygıttan yükle\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yükleme iptal edildi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yükleme atlandı\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" klasörünün yüklenmesi atlandı'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { \"locale\": \"ug\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ug\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2025\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nO St <oleksiy.stasevych@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2025\\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [`\"{segment}\" не є дозволеним ім'ям файлу або каталогу.`] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" не є дозволеним типом файлу.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" не дозволене сполучення символів в назві файлу або каталогу.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунда залишилася\", \"{seconds} секунди залишилося\", \"{seconds} секунд залишилося\", \"{seconds} секунд залишилося\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Залишилося {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"залишилося кілька секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"збірка\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Скасувати завантаження\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Створити новий\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оцінка часу, що залишився\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Присутня версія\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не вдалося зібрати частинки докупи\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Не вдалося завантажити файл\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Ім'я файлів не можуть закінчуватися на \"{segment}\".`] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Недійсне ім'я файлу\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Нове\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Нове ім'я файлу\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"призупинено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Попередній перегляд\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Перейменувати\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати усі нові файли\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустити\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити {count} файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Невідомий розмір\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Завантажити\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Завантажити файли\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Завантажити каталоги\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Завантажити з пристрою\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Завантаження скасовано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Завантаження пропущено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Завантаження \"{folder}\" пропущено'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { \"locale\": \"ur_PK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ur_PK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uz\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\", \"Language-Team\": \"Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nKhurshid Ibatov <x.ibatov@dtsj.uz>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl yoki papka nomidir.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl turi hisoblanadi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" fayl yoki papka nomi ichida ruxsat berilmaydi.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fayllar ziddiyati\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count}fayl ziddiyatlari {dirname} da\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soniya qoldi\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} qoldi\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir necha soniya qoldi\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"yig'ish\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yuklashni bekor qilish\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yangi yaratish\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"qolgan vaqtni hisoblash\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Bo'laklarni birlashtirib bo'lmadi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fayl yuklanmadi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Fayl nomlari bilan tugamasligi kerak \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Fayl nomi noto‘g‘ri\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yangi nom faylga\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"tanaffus\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Rasmni oldindan ko'rish\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Qayta nomlash\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Oʻtkazib yuborish\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Oʻtkazib yuborish {count} fayllarini\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Noma'lum o'lcham\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yuklash\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fayllarni yuklash\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Jildlarni yuklash\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Qurilmadan yuklash\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yuklash bekor qilindi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yuklash oʻtkazib yuborildi\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [' \"{folder}\" ni yuklash bekor qilindi'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yuklash jarayoni\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nTung DangQuang, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Tung DangQuang, 2023\\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Còn {second} giây\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Còn lại {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ngày sửa dổi lần cuối không xác định\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Tạo Mới\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Phiên Bản Mới\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"đã tạm dừng\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Dừng Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tập tin tải lên\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gloryandel, 2024\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGloryandel, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gloryandel, 2024\\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是被禁止的文件名或文件夹名。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是被禁止的文件类型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允许包含在文件名或文件夹名中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩余 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩余 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"还剩几秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整个操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上传\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"继续\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新建\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估计剩余时间\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"服务端版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['文件名不得以 \"{segment}\" 结尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果同时选择两个版本,则上传文件的名称中将添加一个数字。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"无效文件名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"文件最后修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新文件名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"上传版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暂停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"图片预览\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"选择所有的选择框\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"保留所有服务端版本\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"保留所有上传版本\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳过\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过{count}个文件\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"文件大小未知\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上传\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上传文件\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上传文件夹\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"从设备上传\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上传已取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上传已跳过\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['已跳过上传\"{folder}\"'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上传进度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你要保留哪些文件?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以重命名文件、跳过此文件或取消整个操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"每个文件至少选择保留一个版本\"] } } } } }, { \"locale\": \"zh_HK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Café Tango, 2025\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nCafé Tango, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2025\\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案或資料夾名稱。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案類型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允許出現在檔案或資料夾名稱中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"組裝\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"創建新\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"組裝這些部分時失敗\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"上傳文件失敗\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['檔案名不得以 \"{segment}\" 結尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,傳入檔案的名稱將會新增編號。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無效的檔案名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期不詳\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新檔案名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本 \"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重新命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳過\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"大小不詳\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上傳資料夾\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"從裝置上傳\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上傳已被取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上傳已被跳過\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 的上傳已被跳過'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以選擇重新命名檔案、跳過此檔案或取消整個操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { \"locale\": \"zh_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n黃柏諺 <s8321414@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"未知大小\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"已取消上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass UploadCancelledError extends Error {\n constructor(cause) {\n super(t(\"Upload has been cancelled\"), { cause });\n }\n}\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nasync function uploadData(url, uploadData2, uploadOptions) {\n const options = {\n headers: {},\n onUploadProgress: () => {\n },\n onUploadRetry: () => {\n },\n retries: 5,\n ...uploadOptions\n };\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (options.destinationFile) {\n options.headers.Destination = options.destinationFile;\n }\n if (!options.headers[\"Content-Type\"]) {\n options.headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal: options.signal,\n onUploadProgress: options.onUploadProgress,\n headers: options.headers,\n \"axios-retry\": {\n retries: options.retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3),\n retryCondition(error) {\n if (error.status === 507) {\n return false;\n }\n if (error.status === 423) {\n return true;\n }\n return isNetworkOrIdempotentRequestError(error);\n },\n onRetry: options.onUploadRetry\n }\n });\n}\nconst getChunk = function(file, start, length) {\n if (start === 0 && file.size <= length) {\n return Promise.resolve(new Blob([file], { type: file.type || \"application/octet-stream\" }));\n }\n return Promise.resolve(new Blob([file.slice(start, start + length)], { type: \"application/octet-stream\" }));\n};\nconst initChunkWorkspace = async function(destinationFile = void 0, retries = 5, isPublic = false) {\n let chunksWorkspace;\n if (isPublic) {\n chunksWorkspace = `${getBaseUrl()}/public.php/dav/uploads/${getSharingToken()}`;\n } else {\n chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n }\n const hash = [...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\");\n const tempWorkspace = `web-file-upload-${hash}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n const headers = destinationFile ? { Destination: destinationFile } : void 0;\n await axios.request({\n method: \"MKCOL\",\n url,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst getMaxChunksSize = function(fileSize = void 0) {\n const maxChunkSize = window.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n const minimumChunkSize = Math.max(Number(maxChunkSize), 5 * 1024 * 1024);\n if (fileSize === void 0) {\n return minimumChunkSize;\n }\n return Math.max(minimumChunkSize, Math.ceil(fileSize / 1e4));\n};\nvar Status = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status2[Status2[\"FINISHED\"] = 3] = \"FINISHED\";\n Status2[Status2[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status2[Status2[\"FAILED\"] = 5] = \"FAILED\";\n return Status2;\n})(Status || {});\nclass Upload {\n _source;\n _file;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = 0;\n _controller;\n _response = null;\n constructor(source, chunked = false, size, file) {\n const chunks = Math.min(getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1, 1e4);\n this._source = source;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._file = file;\n this._controller = new AbortController();\n }\n get source() {\n return this._source;\n }\n get file() {\n return this._file;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get startTime() {\n return this._startTime;\n }\n set response(response) {\n this._response = response;\n }\n get response() {\n return this._response;\n }\n get uploaded() {\n return this._uploaded;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(length) {\n if (length >= this._size) {\n this._status = this._isChunked ? 2 : 3;\n this._uploaded = this._size;\n return;\n }\n this._status = 1;\n this._uploaded = length;\n if (this._startTime === 0) {\n this._startTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort();\n this._status = 4;\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst isFileSystemDirectoryEntry = (o) => \"FileSystemDirectoryEntry\" in window && o instanceof FileSystemDirectoryEntry;\nconst isFileSystemFileEntry = (o) => \"FileSystemFileEntry\" in window && o instanceof FileSystemFileEntry;\nconst isFileSystemEntry = (o) => \"FileSystemEntry\" in window && o instanceof FileSystemEntry;\nclass Directory extends File {\n _originalName;\n _path;\n _children;\n constructor(path) {\n super([], basename(path), { type: \"httpd/unix-directory\", lastModified: 0 });\n this._children = /* @__PURE__ */ new Map();\n this._originalName = basename(path);\n this._path = path;\n }\n get size() {\n return this.children.reduce((sum, file) => sum + file.size, 0);\n }\n get lastModified() {\n return this.children.reduce((latest, file) => Math.max(latest, file.lastModified), 0);\n }\n // We need this to keep track of renamed files\n get originalName() {\n return this._originalName;\n }\n get children() {\n return Array.from(this._children.values());\n }\n get webkitRelativePath() {\n return this._path;\n }\n getChild(name) {\n return this._children.get(name) ?? null;\n }\n /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\n */\n async addChild(file) {\n const rootPath = this._path && `${this._path}/`;\n if (isFileSystemFileEntry(file)) {\n file = await new Promise((resolve, reject) => file.file(resolve, reject));\n } else if (isFileSystemDirectoryEntry(file)) {\n const reader = file.createReader();\n const entries = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));\n const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\n return;\n }\n file = file;\n const filePath = file.webkitRelativePath ?? file.name;\n if (!filePath.includes(\"/\")) {\n this._children.set(file.name, file);\n } else {\n if (!filePath.startsWith(this._path)) {\n throw new Error(`File ${filePath} is not a child of ${this._path}`);\n }\n const relPath = filePath.slice(rootPath.length);\n const name = basename(relPath);\n if (name === relPath) {\n this._children.set(name, file);\n } else {\n const base = relPath.slice(0, relPath.indexOf(\"/\"));\n if (this._children.has(base)) {\n await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nvar EtaStatus = /* @__PURE__ */ ((EtaStatus2) => {\n EtaStatus2[EtaStatus2[\"Idle\"] = 0] = \"Idle\";\n EtaStatus2[EtaStatus2[\"Paused\"] = 1] = \"Paused\";\n EtaStatus2[EtaStatus2[\"Running\"] = 2] = \"Running\";\n return EtaStatus2;\n})(EtaStatus || {});\nclass Eta extends TypedEventTarget {\n /** Bytes done */\n _done = 0;\n /** Total bytes to do */\n _total = 0;\n /** Current progress (cached) as interval [0,1] */\n _progress = 0;\n /** Status of the ETA */\n _status = 0;\n /** Time of the last update */\n _startTime = -1;\n /** Total elapsed time for current ETA */\n _elapsedTime = 0;\n /** Current speed in bytes per second */\n _speed = -1;\n /** Expected duration to finish in seconds */\n _eta = Infinity;\n /**\n * Cutoff time for the low pass filter of the ETA.\n * A higher value will consider more history information for calculation,\n * and thus suppress spikes of the speed,\n * but will make the overall resposiveness slower.\n */\n _cutoffTime = 2.5;\n constructor(options = {}) {\n super();\n if (options.start) {\n this.resume();\n }\n if (options.total) {\n this.update(0, options.total);\n }\n this._cutoffTime = options.cutoffTime ?? 2.5;\n }\n /**\n * Add more transferred bytes.\n * @param done Additional bytes done.\n */\n add(done) {\n this.update(this._done + done);\n }\n /**\n * Update the transmission state.\n *\n * @param done The new value of transferred bytes.\n * @param total Optionally also update the total bytes we expect.\n */\n update(done, total) {\n if (this.status !== 2) {\n return;\n }\n if (total && total > 0) {\n this._total = total;\n }\n const deltaDone = done - this._done;\n const deltaTime = (Date.now() - this._startTime) / 1e3;\n this._startTime = Date.now();\n this._elapsedTime += deltaTime;\n this._done = done;\n this._progress = this._done / this._total;\n const historyNeeded = this._cutoffTime + deltaTime;\n if (this._elapsedTime > historyNeeded) {\n const alpha = deltaTime / (deltaTime + 1 / this._cutoffTime);\n const filtered = this._done - deltaDone + (1 - alpha) * deltaDone;\n this._speed = Math.round(filtered / this._elapsedTime);\n } else if (this._speed === -1 && this._elapsedTime > deltaTime) {\n const remaining = this._total - done;\n const eta = remaining / (done / this._elapsedTime);\n if (this._eta !== Infinity || eta <= 2 * this._cutoffTime) {\n this._eta = eta;\n }\n }\n if (this._speed > 0) {\n this._eta = Math.round((this._total - this._done) / this._speed);\n }\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\", { cancelable: false }));\n }\n reset() {\n this._done = 0;\n this._total = 0;\n this._progress = 0;\n this._elapsedTime = 0;\n this._eta = Infinity;\n this._speed = -1;\n this._startTime = -1;\n this._status = 0;\n this.dispatchTypedEvent(\"reset\", new CustomEvent(\"reset\"));\n }\n /**\n * Pause the ETA calculation.\n */\n pause() {\n if (this._status === 2) {\n this._status = 1;\n this._elapsedTime += (Date.now() - this._startTime) / 1e3;\n this.dispatchTypedEvent(\"pause\", new CustomEvent(\"pause\"));\n }\n }\n /**\n * Resume the ETA calculation.\n */\n resume() {\n if (this._status !== 2) {\n this._startTime = Date.now();\n this._status = 2;\n this.dispatchTypedEvent(\"resume\", new CustomEvent(\"resume\"));\n }\n }\n /**\n * Status of the Eta (paused, active, idle).\n */\n get status() {\n return this._status;\n }\n /**\n * Progress (percent done)\n */\n get progress() {\n return Math.round(this._progress * 1e4) / 100;\n }\n /**\n * Estimated time in seconds.\n */\n get time() {\n return this._eta;\n }\n /**\n * Human readable version of the estimated time.\n */\n get timeReadable() {\n if (this._eta === Infinity) {\n return t(\"estimating time left\");\n } else if (this._eta < 10) {\n return t(\"a few seconds left\");\n } else if (this._eta < 60) {\n return n(\"{seconds} seconds left\", \"{seconds} seconds left\", this._eta, { seconds: this._eta });\n }\n const hours = String(Math.floor(this._eta / 3600)).padStart(2, \"0\");\n const minutes = String(Math.floor(this._eta % 3600 / 60)).padStart(2, \"0\");\n const seconds = String(this._eta % 60).padStart(2, \"0\");\n return t(\"{time} left\", { time: `${hours}:${minutes}:${seconds}` });\n }\n /**\n * Transfer speed in bytes per second.\n * Returns `-1` if not yet estimated.\n */\n get speed() {\n return this._speed;\n }\n /**\n * Get the speed in human readable format using file sizes like 10KB/s.\n * Returns the empty string if not yet estimated.\n */\n get speedReadable() {\n return this._speed > 0 ? `${formatFileSize(this._speed, true)}∕s` : \"\";\n }\n}\nvar UploaderStatus = /* @__PURE__ */ ((UploaderStatus2) => {\n UploaderStatus2[UploaderStatus2[\"IDLE\"] = 0] = \"IDLE\";\n UploaderStatus2[UploaderStatus2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n UploaderStatus2[UploaderStatus2[\"PAUSED\"] = 2] = \"PAUSED\";\n return UploaderStatus2;\n})(UploaderStatus || {});\nclass Uploader {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n _customHeaders;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _eta = new Eta();\n _notifiers = [];\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(isPublic = false, destinationFolder) {\n this._isPublic = isPublic;\n this._customHeaders = {};\n if (!destinationFolder) {\n const source = `${davRemoteURL}${davRootPath}`;\n let owner;\n if (isPublic) {\n owner = \"anonymous\";\n } else {\n const user = getCurrentUser()?.uid;\n if (!user) {\n throw new Error(\"User is not logged in\");\n }\n owner = user;\n }\n destinationFolder = new Folder({\n id: 0,\n owner,\n permissions: Permission.ALL,\n root: davRootPath,\n source\n });\n }\n this.destination = destinationFolder;\n logger.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize()\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this._destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(folder) {\n if (!folder || folder.type !== FileType.Folder || !folder.source) {\n throw new Error(\"Invalid destination folder\");\n }\n logger.debug(\"Destination set\", { folder });\n this._destinationFolder = folder;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get registered custom headers for uploads\n */\n get customHeaders() {\n return structuredClone(this._customHeaders);\n }\n /**\n * Set a custom header\n * @param name The header to set\n * @param value The string value\n */\n setCustomHeader(name, value = \"\") {\n this._customHeaders[name] = value;\n }\n /**\n * Unset a custom header\n * @param name The header to unset\n */\n deleteCustomerHeader(name) {\n delete this._customHeaders[name];\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n this._eta.reset();\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\n this._uploadQueue.splice(0, this._uploadQueue.length);\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = 0;\n logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._eta.pause();\n this._jobQueue.pause();\n this._queueStatus = 2;\n this.updateStats();\n logger.debug(\"Uploader paused\");\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._eta.resume();\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n logger.debug(\"Uploader resumed\");\n }\n /**\n * Get the estimation for the uploading time.\n */\n get eta() {\n return this._eta;\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus\n };\n }\n updateStats() {\n const size = this._uploadQueue.map((upload2) => upload2.size).reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map((upload2) => upload2.uploaded).reduce((partialSum, a) => partialSum + a, 0);\n this._eta.update(uploaded, size);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus !== 2) {\n const pending = this._uploadQueue.find(({ status }) => [Status.INITIALIZED, Status.UPLOADING, Status.ASSEMBLING].includes(status));\n if (this._jobQueue.size > 0 || pending) {\n this._queueStatus = 1;\n } else {\n this.eta.reset();\n this._queueStatus = 0;\n }\n }\n }\n addNotifier(notifier) {\n this._notifiers.push(notifier);\n }\n /**\n * Notify listeners of the upload completion\n * @param upload The upload that finished\n */\n _notifyAll(upload2) {\n for (const notifier of this._notifiers) {\n try {\n notifier(upload2);\n } catch (error) {\n logger.warn(\"Error in upload notifier\", { error, source: upload2.source });\n }\n }\n }\n /**\n * Uploads multiple files or folders while preserving the relative path (if available)\n * @param {string} destination The destination path relative to the root folder. e.g. /foo/bar (a file \"a.txt\" will be uploaded then to \"/foo/bar/a.txt\")\n * @param {Array<File|FileSystemEntry>} files The files and/or folders to upload\n * @param {Function} callback Callback that receives the nodes in the current folder and the current path to allow resolving conflicts, all nodes that are returned will be uploaded (if a folder does not exist it will be created)\n * @return Cancelable promise that resolves to an array of uploads\n *\n * @example\n * ```ts\n * // For example this is from handling the onchange event of an input[type=file]\n * async handleFiles(files: File[]) {\n * this.uploads = await this.uploader.batchUpload('uploads', files, this.handleConflicts)\n * }\n *\n * async handleConflicts(nodes: File[], currentPath: string) {\n * const conflicts = getConflicts(nodes, this.fetchContent(currentPath))\n * if (conflicts.length === 0) {\n * // No conflicts so upload all\n * return nodes\n * } else {\n * // Open the conflict picker to resolve conflicts\n * try {\n * const { selected, renamed } = await openConflictPicker(currentPath, conflicts, this.fetchContent(currentPath), { recursive: true })\n * return [...selected, ...renamed]\n * } catch (e) {\n * return false\n * }\n * }\n * }\n * ```\n */\n batchUpload(destination, files, callback) {\n if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\n try {\n const client = davGetClient(this.root, this._customHeaders);\n const promise = this.uploadDirectory(destination, rootFolder, callback, client);\n onCancel(() => promise.cancel());\n const uploads = await promise;\n upload2.status = Status.FINISHED;\n resolve(uploads);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n logger.info(\"Upload cancelled by user\", { error });\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(upload2);\n this.updateStats();\n }\n });\n }\n /**\n * Helper to create a directory wrapped inside an Upload class\n * @param destination Destination where to create the directory\n * @param directory The directory to create\n * @param client The cached WebDAV client\n */\n createDirectory(destination, directory, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n const rootPath = `${this.root.replace(/\\/$/, \"\")}/${folderPath.replace(/^\\//, \"\")}`;\n if (!directory.name) {\n throw new Error(\"Can not create empty directory\");\n }\n const currentUpload = new Upload(rootPath, false, 0, directory);\n this._uploadQueue.push(currentUpload);\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n currentUpload.signal.addEventListener(\"abort\", () => reject(t(\"Upload has been cancelled\")));\n await this._jobQueue.add(async () => {\n currentUpload.status = Status.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n currentUpload.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n currentUpload.status = Status.FINISHED;\n resolve(currentUpload);\n } else {\n currentUpload.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(currentUpload);\n this.updateStats();\n }\n });\n });\n }\n // Helper for uploading directories (recursively)\n uploadDirectory(destination, directory, callback, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n const selectedForUpload = await callback(directory.children, folderPath);\n if (selectedForUpload === false) {\n logger.debug(\"Upload canceled by user\", { directory });\n reject(new UploadCancelledError(\"Conflict resolution cancelled by user\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\n resolve([]);\n return;\n }\n const directories = [];\n const uploads = [];\n abort.signal.addEventListener(\"abort\", () => {\n directories.forEach((upload2) => upload2.cancel());\n uploads.forEach((upload2) => upload2.cancel());\n });\n logger.debug(\"Start directory upload\", { directory });\n try {\n if (directory.name) {\n uploads.push(this.createDirectory(destination, directory, client));\n await uploads.at(-1);\n }\n for (const node of selectedForUpload) {\n if (node instanceof Directory) {\n directories.push(this.uploadDirectory(folderPath, node, callback, client));\n } else {\n uploads.push(this.upload(`${folderPath}/${node.name}`, node));\n }\n }\n const resolvedUploads = await Promise.all(uploads);\n const resolvedDirectoryUploads = await Promise.all(directories);\n resolve([resolvedUploads, ...resolvedDirectoryUploads].flat());\n } catch (e) {\n abort.abort(e);\n reject(e);\n }\n });\n }\n /**\n * Upload a file to the given path\n * @param {string} destination the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File|FileSystemFileEntry} fileHandle the file to upload\n * @param {string} root the root folder to upload to\n * @param retries number of retries\n */\n upload(destination, fileHandle, root, retries = 5) {\n root = root || this.root;\n const destinationPath = `${root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const { origin } = new URL(destinationPath);\n const encodedDestinationFile = origin + encodePath(destinationPath.slice(origin.length));\n this.eta.resume();\n logger.debug(`Uploading ${fileHandle.name} to ${encodedDestinationFile}`);\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n if (isFileSystemFileEntry(fileHandle)) {\n fileHandle = await new Promise((resolve2) => fileHandle.file(resolve2, reject));\n }\n const file = fileHandle;\n const supportsPublicChunking = getCapabilities().dav?.public_shares_chunking ?? false;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic && !supportsPublicChunking || maxChunkSize === 0 || \"size\" in file && file.size < maxChunkSize;\n const upload2 = new Upload(destinationPath, !disabledChunkUpload, file.size, file);\n this._uploadQueue.push(upload2);\n this.updateStats();\n onCancel(upload2.cancel);\n if (!disabledChunkUpload) {\n logger.debug(\"Initializing chunked upload\", { file, upload: upload2 });\n const tempUrl = await initChunkWorkspace(encodedDestinationFile, retries, this._isPublic);\n const chunksQueue = [];\n for (let chunk = 0; chunk < upload2.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload2.size);\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n const request2 = () => {\n let chunkBytes = 0;\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n {\n signal: upload2.signal,\n destinationFile: encodedDestinationFile,\n retries,\n onUploadProgress: ({ bytes }) => {\n const progressBytes = bytes * 0.9;\n chunkBytes += progressBytes;\n upload2.uploaded += progressBytes;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded -= chunkBytes;\n chunkBytes = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n }\n }\n ).then(() => {\n upload2.uploaded += bufferEnd - bufferStart - chunkBytes;\n this.updateStats();\n }).catch((error) => {\n if (error?.response?.status === 507) {\n logger.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status.FAILED;\n throw error;\n }\n if (!isCancel(error)) {\n logger.error(`Chunk ${chunk + 1} ${bufferStart} - ${bufferEnd} uploading failed`, { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request2));\n }\n const request = async () => {\n try {\n await Promise.all(chunksQueue);\n upload2.status = Status.ASSEMBLING;\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n upload2.status = Status.FINISHED;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n upload2.status = Status.FAILED;\n reject(t(\"Failed to assemble the chunks together\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n } finally {\n this._notifyAll(upload2);\n }\n };\n this._jobQueue.add(request);\n } else {\n logger.debug(\"Initializing regular upload\", { file, upload: upload2 });\n const blob = await getChunk(file, 0, upload2.size);\n const request = async () => {\n try {\n upload2.response = await uploadData(\n encodedDestinationFile,\n blob,\n {\n signal: upload2.signal,\n onUploadProgress: ({ bytes }) => {\n upload2.uploaded += bytes * 0.9;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"Content-Type\": file.type\n }\n }\n );\n upload2.uploaded = upload2.size;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(t(\"Failed to upload the file\"));\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n /**\n * Create modification time headers if valid value is available.\n * It can be invalid on Android devices if SD cards with NTFS / FAT are used,\n * as those files might use the NT epoch for time so the value will be negative.\n *\n * @param file The file to upload\n */\n _mtimeHeader(file) {\n const mtime = Math.floor(file.lastModified / 1e3);\n if (mtime > 0) {\n return { \"X-OC-Mtime\": mtime };\n }\n return {};\n }\n}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$4 = {\n name: \"CancelIcon\",\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};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\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};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\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};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\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};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\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 null\n);\nconst IconUpload = __component__$1.exports;\nfunction showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-BYpqWa7P.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\n },\n (...rest) => {\n const [{ skip, rename }] = rest;\n if (skip) {\n resolve(false);\n } else if (rename) {\n resolve(rename);\n } else {\n reject();\n }\n }\n );\n return promise;\n}\nfunction hasConflict(files, content) {\n return getConflicts(files, content).length > 0;\n}\nfunction getConflicts(files, content) {\n const contentNames = content.map((node) => node.basename);\n const conflicts = files.filter((node) => {\n const name = \"basename\" in node ? node.basename : node.name;\n return contentNames.indexOf(name) !== -1;\n });\n return conflicts;\n}\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(path).catch(() => []);\n const conflicts = getConflicts(nodes, content);\n if (conflicts.length > 0) {\n const { selected, renamed } = await openConflictPicker(path, conflicts, content, { recursive: true });\n nodes = [\n ...nodes.filter((node) => !conflicts.includes(node)),\n ...selected,\n ...renamed\n ];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n validateFilename(file.name);\n filesToUpload.push(file);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n logger.error(`Unexpected error while validating ${file.name}`, { error });\n throw error;\n }\n let newName = await showInvalidFilenameDialog(error);\n if (newName !== false) {\n newName = getUniqueName(newName, nodes.map((node) => node.name));\n Object.defineProperty(file, \"name\", { value: newName });\n filesToUpload.push(file);\n }\n }\n }\n if (filesToUpload.length === 0 && nodes.length > 0) {\n const folder = basename(path);\n showInfo(\n folder ? t('Upload of \"{folder}\" has been skipped', { folder }) : t(\"Upload has been skipped\")\n );\n }\n return filesToUpload;\n } catch (error) {\n logger.debug(\"Upload has been cancelled\", { error });\n showWarning(t(\"Upload has been cancelled\"));\n return false;\n }\n };\n}\nconst _sfc_main = defineComponent({\n name: \"UploadPicker\",\n components: {\n IconCancel,\n IconFolderUpload,\n IconPlus,\n IconUpload,\n NcActionButton,\n NcActionCaption,\n NcActionSeparator,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcProgressBar\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the \"new\"-menu for this UploadPicker instance\n */\n noMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Make the \"New\"-button primary color.\n */\n primary: {\n type: Boolean,\n default: false\n },\n destination: {\n type: Folder,\n default: void 0\n },\n allowFolders: {\n type: Boolean,\n default: false\n },\n /**\n * List of file present in the destination folder\n * It is also possible to provide a function that takes a relative path to the current directory and returns the content of it\n * Note: If a function is passed it should return the current base directory when no path or an empty is passed\n */\n content: {\n type: [Array, Function],\n default: () => []\n },\n /**\n * Overwrite forbidden characters (by default the capabilities of the server are used)\n * @deprecated Deprecated and will be removed in the next major version\n */\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n setup() {\n return {\n t,\n // non reactive data / properties\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`\n };\n },\n data() {\n return {\n newFileMenuEntries: [],\n openedMenu: false,\n uploadManager: getUploader()\n };\n },\n computed: {\n menuEntriesUpload() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.UploadFromDevice);\n },\n menuEntriesNew() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.CreateNew);\n },\n menuEntriesOther() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.Other);\n },\n /**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\n canUploadFolders() {\n return this.allowFolders && \"webkitdirectory\" in document.createElement(\"input\");\n },\n queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue.some((upload2) => upload2.status === Status.FAILED);\n },\n isAssembling() {\n return this.queue.some((upload2) => upload2.status === Status.ASSEMBLING);\n },\n isUploading() {\n return this.queue.some((upload2) => upload2.status !== Status.CANCELLED);\n },\n isOnlyAssembling() {\n return this.isAssembling && this.queue.every((upload2) => (\n // ignore empty uploads or meta uploads\n upload2.size === 0 || upload2.status === Status.ASSEMBLING || upload2.status === Status.FINISHED\n ));\n },\n isPaused() {\n return this.uploadManager.info?.status === UploaderStatus.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\n }\n },\n watch: {\n allowFolders: {\n immediate: true,\n handler() {\n if (typeof this.content !== \"function\" && this.allowFolders) {\n logger.error(\"[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function\");\n }\n }\n },\n destination(destination) {\n this.setDestination(destination);\n },\n isPaused(isPaused) {\n if (isPaused) {\n this.$emit(\"paused\", this.queue);\n } else {\n this.$emit(\"resumed\", this.queue);\n }\n }\n },\n beforeMount() {\n if (this.destination) {\n this.setDestination(this.destination);\n }\n this.uploadManager.addNotifier(this.onUploadCompletion);\n useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n etaTimeAndSpeed() {\n const speed = this.uploadManager.eta.speedReadable;\n if (speed) {\n return `${this.uploadManager.eta.timeReadable} (${speed})`;\n }\n return this.uploadManager.eta.timeReadable;\n },\n /**\n * Handle clicking a new-menu entry\n * @param entry The entry that was clicked\n */\n async onClick(entry) {\n entry.handler(\n this.destination,\n await this.getContent().catch(() => [])\n );\n },\n /**\n * Trigger file picker\n * @param uploadFolders Upload folders\n */\n onTriggerPick(uploadFolders = false) {\n const input = this.$refs.input;\n if (this.canUploadFolders) {\n input.webkitdirectory = uploadFolders;\n }\n this.$nextTick(() => input.click());\n },\n /**\n * Helper for backwards compatibility that queries the content of the current directory\n * @param path The current path\n */\n async getContent(path) {\n return Array.isArray(this.content) ? this.content : await this.content(path);\n },\n /**\n * Start uploading\n */\n async onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n try {\n await this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent));\n } catch (error) {\n logger.debug(\"Error while uploading\", { error });\n } finally {\n this.resetForm();\n }\n },\n resetForm() {\n const form = this.$refs.form;\n form?.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((upload2) => {\n upload2.cancel();\n });\n this.resetForm();\n },\n setDestination(destination) {\n if (!this.destination) {\n logger.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = destination;\n this.newFileMenuEntries = getNewFileMenuEntries(destination);\n },\n onUploadCompletion(upload2) {\n if (upload2.status === Status.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.destination ? _c(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": _vm.isUploading, \"upload-picker--paused\": _vm.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [!_vm.haveMenu ? _c(\"NcButton\", { attrs: { \"aria-label\": _vm.buttonLabel, \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }, !_vm.isUploading ? { key: \"default\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.buttonLabel) + \" \")];\n }, proxy: true } : null], null, true) }) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.buttonLabel, \"open\": _vm.openedMenu, \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Upload from device\") } }), _c(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"close-after-click\": true }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconUpload\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 337456192) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload files\")) + \" \")]), _vm.canUploadFolders ? _c(\"NcActionButton\", { attrs: { \"close-after-click\": \"\", \"data-cy-upload-picker-add-folders\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-folder\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick(true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconFolderUpload\", { staticStyle: { \"color\": \"var(--color-primary-element)\" }, attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1037549157) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload folders\")) + \" \")]) : _vm._e(), !_vm.noMenu ? _vm._l(_vm.menuEntriesUpload, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n }) : _vm._e(), !_vm.noMenu && _vm.menuEntriesNew.length > 0 ? [_c(\"NcActionSeparator\"), _c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Create new\") } }), _vm._l(_vm.menuEntriesNew, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e(), !_vm.noMenu && _vm.menuEntriesOther.length > 0 ? [_c(\"NcActionSeparator\"), _vm._l(_vm.menuEntriesOther, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e()], 2), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [_c(\"NcProgressBar\", { attrs: { \"aria-label\": _vm.t(\"Upload progress\"), \"aria-describedby\": _vm.progressTimeId, \"data-cy-upload-picker-progress\": \"\", \"error\": _vm.hasFailure, \"value\": _vm.uploadManager.eta.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId, \"data-cy-upload-picker-progress-label\": \"\" } }, [_vm.isPaused ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"paused\")) + \" \")]) : _vm.isOnlyAssembling ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"assembling\")) + \" \")]) : _c(\"span\", { attrs: { \"title\": _vm.etaTimeAndSpeed() } }, [_vm._v(\" \" + _vm._s(_vm.uploadManager.eta.timeReadable) + \" \"), _vm.uploadManager.eta.speedReadable && _vm.uploadManager.eta.time >= 60 ? _c(\"span\", [_vm._v(\" (\" + _vm._s(_vm.uploadManager.eta.speedReadable) + \") \")]) : _vm._e()])])], 1), _vm.isUploading && !_vm.isOnlyAssembling ? _c(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.t(\"Cancel uploads\"), \"data-cy-upload-picker-cancel\": \"\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCancel\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 3076329829) }) : _vm._e(), _c(\"input\", { ref: \"input\", staticClass: \"hidden-visually\", attrs: { \"accept\": _vm.accept?.join?.(\", \"), \"multiple\": _vm.multiple, \"data-cy-upload-picker-input\": \"\", \"type\": \"file\" }, on: { \"change\": _vm.onPick } })], 1) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"12e6e354\"\n);\nconst UploadPicker = __component__.exports;\nfunction getUploader(isPublic = isPublicShare(), forceRecreate = false) {\n if (forceRecreate || window._nc_uploader === void 0) {\n window._nc_uploader = new Uploader(isPublic);\n }\n return window._nc_uploader;\n}\nfunction upload(destinationPath, file) {\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-BvM7ZujP.mjs\"));\n return new Promise((resolve, reject) => {\n const picker = new Vue({\n name: \"ConflictPickerRoot\",\n render: (h) => h(ConflictPicker, {\n props: {\n dirname,\n conflicts,\n content,\n recursiveUpload: options?.recursive === true\n },\n on: {\n submit(results) {\n resolve(results);\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n },\n cancel(error) {\n reject(error ?? new Error(\"Canceled\"));\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n }\n }\n })\n });\n picker.$mount();\n document.body.appendChild(picker.$el);\n });\n}\nexport {\n EtaStatus as E,\n Status as S,\n UploadPicker as U,\n isFileSystemFileEntry as a,\n n as b,\n getConflicts as c,\n uploadConflictHandler as d,\n Upload as e,\n Uploader as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemEntry as i,\n UploaderStatus as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\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=\" + {\"640\":\"b2fa23a809053c6305c5\",\"1656\":\"05d90ab05fafdbaeed35\",\"3485\":\"b3e801849a79b5a466ec\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"8dfb2392d7107957a510\",\"7432\":\"126e4e5eedf7af9a92fc\",\"7807\":\"382c331365e38d2fb775\"}[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 = 2882;","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\t2882: 0,\n\t5810: 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__(3538)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","getPinia","window","_nc_files_pinia","createPinia","originalLocation","Column","title","t","render","node","parseOriginalLocation","span","document","createElement","textContent","sort","nodeA","nodeB","locationA","locationB","localeCompare","getLanguage","getCanonicalLocale","numeric","usage","deletedBy","userId","displayName","label","parseDeletedBy","Vue","extend","NcUserBubble","propsData","size","user","undefined","$mount","$el","deletedByA","deletedbyALabel","deletedByB","deletedByBLabel","deleted","deletionTime","attributes","mtime","getTime","formatter","Intl","DateTimeFormat","dateStyle","timeStyle","timestamp","Date","format","formatRelativeTime","ignoreSeconds","deletionTimeA","path","stringOrNull","dir","dirname","replace","currentUserId","getCurrentUser","uid","attribute","String","rootPath","client","davGetClient","data","getDavNameSpaces","getDavProperties","resultToNode","stat","davResultToNode","previewUrl","generateUrl","fileid","TRASHBIN_VIEW_ID","View","name","caption","emptyTitle","emptyCaption","icon","svgDelete","order","sticky","defaultSortKey","columns","getContents","async","arguments","length","contents","getDirectoryContents","details","includeSelf","map","folder","splice","findIndex","isTrashbinEnabled","getCapabilities","files","undelete","canUnshareOnly","nodes","every","canDisconnectOnly","view","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","askConfirmation","message","n","count","Promise","resolve","OC","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","cancel","decision","deleteNode","axios","delete","encodedSource","emit","getLoggerBuilder","setApp","detectUser","build","queue","PQueue","concurrency","action","FileAction","iconSvgInline","CloseSvg","enabled","loadState","allow_delete","permissions","permission","Permission","DELETE","exec","isCalledFromEventListener","Error","stack","toLocaleLowerCase","includes","showInfo","error","logger","source","execBatch","all","promises","add","shouldFavorite","favorite","favoriteNode","willFavorite","url","encodePath","post","tags","TAG_FAVORITE","StarOutlineSvg","StarSvg","isPublicShare","root","startsWith","NONE","PencilSvg","Boolean","InformationSvg","OCA","Files","Sidebar","file","debug","setActiveTab","open","OCP","Router","goToRoute","query","opendetails","useActiveStore","store","defineStore","state","_initialized","activeNode","activeView","activeAction","actions","setActiveNode","this","clearActiveNode","onDeletedNode","setActiveAction","clearActiveAction","onChangedView","activeStore","navigation","getNavigation","subscribe","active","addEventListener","event","detail","executeAction","currentDir","currentNode","currentView","status","NodeStatus","LOADING","success","showSuccess","showError","emits","props","fillColor","default","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","throttle","delay","callback","options","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","Array","_key","self","elapsed","now","apply","clear","setTimeout","_ref2$upcomingOnly","upcomingOnly","components","ChartPie","NcAppNavigationItem","NcProgressBar","loadingStorageStats","storageStats","computed","storageStatsTitle","usedQuotaByte","formatFileSize","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","mounted","free","showStorageFullWarning","methods","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","response","get","translate","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","stopPropagation","preventDefault","slot","Math","min","el","Function","required","appendChild","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcInputField","Setting","setup","userConfigStore","useUserConfigStore","isSystemtagsEnabled","systemtags","settings","Settings","webdavUrl","generateRemoteUrl","encodeURIComponent","webdavDocs","appPasswordUrl","webdavUrlCopied","enableGridView","userConfig","created","useHotKey","showKeyboardShortcuts","stop","prevent","forEach","setting","beforeDestroy","close","onClose","setConfig","key","value","update","copyCloudId","querySelector","select","navigator","clipboard","writeText","$nextTick","getElementById","scrollIntoView","behavior","inline","sort_favorites_first","sort_folders_first","show_hidden","show_mime_column","crop_image_previews","grid_view","folder_tree","_l","target","scopedSlots","_u","fn","proxy","show_dialog_file_extension","useNavigation","_loaded","views","shallowRef","onUpdateActive","onUpdateViews","triggerRef","onMounted","onUnmounted","removeEventListener","initialViewConfig","useViewConfigStore","viewConfigs","ref","put","viewId","set","onUpdate","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","defineComponent","Fragment","NcIconSvgWrapper","parent","Object","level","viewConfigStore","currentViews","values","reduce","acc","filter","params","style","hasChildViews","useExactRouteMatching","generateToNavigation","isExpanded","expanded","onOpen","loadChildViews","filterView","viewMap","fromEntries","entries","_views","_setupProxy","loading","iconClass","loaded","staticStyle","FilenameFilter","FileListFilter","constructor","super","_defineProperty","queryParts","searchQuery","split","displayname","part","reset","updateQuery","trim","filterUpdated","chips","text","onclick","updateChips","dispatchTypedEvent","CustomEvent","isFileListFilterWithUi","useFiltersStore","filters","activeChips","flat","sortedFilters","a","b","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","removeFilter","filterId","index","getFileListFilters","collator","Collator","IconCog","FilesNavigationItem","NavigationQuota","NcAppNavigation","NcAppNavigationList","NcAppNavigationSearch","SettingsModal","filtersStore","filenameFilter","registerFileListFilter","unregisterFileListFilter","watchThrottled","useFilenameFilter","settingsOpened","currentViewId","$route","compare","watch","newView","oldView","find","showView","to","loadExpandedViews","_ref2","viewsToLoad","_ref3","config","_ref4","setActive","openSettings","onSettingsClose","model","$$v","expression","getSummaryFor","hidden","fileCount","folderCount","summary","fileSummary","folderSummary","hiddenSummary","join","useFileListHeaders","headers","getFileListHeaders","element","width","observer","ResizeObserver","elements","contentBoxSize","inlineSize","contentRect","updateObserver","body","unobserve","observe","useFileListWidth","readonly","getClient","fetchNode","propfindPayload","getDefaultPropfind","result","getRootPath","usePathsStore","useFilesStore","pathsStore","paths","getters","getPath","service","addPath","payload","deletePath","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldSource","oldPath","oldNode","owner","mime","parentSource","getRoot","getNode","children","Set","_children","fileStore","roots","getNodes","sources","getNodesById","fileId","getNodesByPath","updateNodes","deleteNodes","setRoot","onUpdatedNode","then","onAddFavorite","ourNode","onRemoveFavorite","useRouteParameters","route","$root","_$route","run","assign","$router","currentRoute","afterEach","useRoute","directory","parseInt","isNaN","openFile","openfile","openDetails","useSelectionStore","selected","lastSelection","lastSelectedIndex","selection","setLastIndex","uploader","useUploaderStore","getUploader","Directory","_contents","_computeDirectorySize","lastModified","_computeDirectoryMtime","entry","traverseTree","isFile","reject","readDirectory","dirReader","createReader","getEntries","readEntries","results","createDirectoryIfNotExists","davClient","exists","absolutePath","createDirectory","recursive","davGetDefaultPropfind","resolveConflict","destination","conflicts","basename","uploads","renamed","openConflictPicker","info","console","sharePermissions","MoveCopyAction","canMove","minPermission","ALL","canCopy","JSON","parse","scope","canDownload","CREATE","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","method","overwrite","actionFinished","mode","toast","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","onRemove","hideToast","createLoadingNotification","copySuffix","currentPath","davRootPath","destinationPath","otherNodes","getUniqueName","suffix","ignoreFileExtension","copyFile","controller","AbortController","CancelablePromise","onCancel","abort","contentsResponse","signal","slice","filename","hasConflict","moveFile","parser","DOMParser","parseFromString","isAxiosError","openFilePickerForAction","promise","withResolvers","fileIDs","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","buttons","dirnames","escape","sanitize","CopyIconSvg","disabled","FolderMoveSvg","pick","catch","FilePickerClosed","e","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","warn","getAsFile","showWarning","onDropExternalFiles","uploadDirectoryContents","relativePath","joinPaths","upload","pause","start","errors","allSettled","onDropInternalFiles","isCopy","useDragAndDropStore","dragging","NcBreadcrumbs","NcBreadcrumb","draggingStore","filesStore","selectionStore","uploaderStore","fileListWidth","dirs","sections","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","selectedFiles","draggingFiles","onClick","onDragOver","dataTransfer","ctrlKey","dropEffect","onDrop","canDrop","button","titleForSection","section","ariaForSection","_t","nativeOn","TrayArrowDownIcon","currentFolder","dragover","canUpload","isQuotaExceeded","cantUploadLabel","resetDragOver","debounce","mainContent","onDragLeave","onContentDrop","isForeignFile","types","currentTarget","contains","relatedTarget","lastUpload","findLast","UploadStatus","FAILED","webkitRelativePath","location","directives","rawName","header","updated","$refs","mount","useActionsMenuStore","opened","useRenamingStore","renamingNode","newNodeName","isRenaming","$reset","rename","newName","oldName","oldExtension","extname","newExtension","spawnDialog","defineAsyncComponent","useNewExtension","showFileExtensionDialog","oldEncodedSource","Destination","Overwrite","updateRootElement","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","isValidMenu","onBackToMenuClick","menuAction","focus","ArrowLeftIcon","CustomElementRender","NcActionButton","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","gridMode","filesListWidth","inject","isActive","isLoading","enabledInlineActions","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","topActionsIds","openedMenu","getBoundariesElement","onKeyDown","actionDisplayName","isLoadingAction","onActionClick","onMenuClose","onMenuClosed","refInFor","keyboardStore","altKey","metaKey","shiftKey","onEvent","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","end","max","filesToSelect","resetSelection","indexOf","_k","keyCode","FileMultipleIcon","FolderIcon","isSingleNode","isSingleFolder","totalSize","total","previewImg","preview","parentNode","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","getFileActions","NcFile","Node","isMtimeAvailable","compact","provide","defaultFileAction","uniqueId","str","hash","i","charCodeAt","hashCode","extension","renamingStore","isRenamingSmallScreen","currentFileId","isFailedSource","canDrag","UPDATE","actionsMenuStore","toString","getDate","crtime","mtimeOpacity","maxOpacityTime","timeDiff","opacityTime","color","round","newSource","resetState","closest","removeProperty","onRightClick","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragStart","clearData","image","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","getFilenameValidity","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","NcTextField","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","tag","domProps","setAttribute","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","isPublic","publicSharingToken","getSharingToken","backgroundFailed","backgroundLoaded","isFavorite","cropPreviews","URL","origin","href","token","searchParams","etag","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isMimeAvailable","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","MimeTypeList","names","baseType","ext","toUpperCase","sizeOpacity","pow","triggerDefaultAction","_g","column","inheritAttrs","_defineComponent","__name","__props","filterStore","visualFilters","filterElements","watchEffect","__sfc","NcAvatar","NcChip","_setup","chip","classForColumn","mapState","sortingMode","sorting_mode","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","checked","isAllSelected","indeterminate","isSomeSelected","selectedNodes","isNoneSelected","onToggleAll","ariaSortForMode","inlineActions","childrenActionsIds","menuActions","areSomeNodesLoading","selectionSources","$set","failedSources","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","floor","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","updateHeightVariables","onScroll","before","footer","disconnect","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","FileListFilters","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","FileEntry","FileEntryGrid","openFileId","cantUpload","defaultCaption","scrollToFile","handleOpenFile","openSidebarForFile","unselectFile","onSidebarClosed","unsubscribe","defaultAction","at","tableElement","table","tableTop","tableBottom","nextIndex","nextNode","isSharingEnabled","files_sharing","BreadCrumbs","DragAndDropNotice","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","forbiddenCharacters","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContents","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sortFoldersFirst","sortingOrder","isEmptyDir","isRefreshing","toPreviousDir","shareTypesAttributes","shareButtonLabel","shareButtonType","User","gridViewButtonLabel","canShare","SHARE","showCustomEmptyView","emptyView","enabledFileListActions","enabledActions","getFileListActions","toSorted","theming","show","customEmptyView","fetchContent","newDir","oldDir","filesListVirtual","filterDirContent","onNodeDeleted","unmounted","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","getElementsByTagName","openSharingSidebar","toggleGridView","execFileListAction","NcContent","FilesList","Navigation","use","originalPush","prototype","args","call","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","_len2","_key2","router","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","stringify","beforeEach","from","next","parentIntercept","fromDir","toDir","fromSource","RouterService","_router","goTo","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","renameAction","favoriteAction","deleteAction","parentDir","alt","old","new","_settings","register","_name","_el","_open","_close","FilesApp","pinia","initialUserConfig","NewMenuEntryCategory","NewMenuEntryCategory2","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","context","DefaultType2","_action","validateAction","destructive","_nc_fileactions","_nc_filelistactions","_nc_filelistheader","InvalidFilenameErrorReason2","cause","capabilities","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","basename2","substring","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","otherNames","opts","n2","i2","humanList","humanListBinary","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","toFixed","parseFloat","toLocaleString","toISOString","sortingOptions","collection","identifiers2","orders","sorting","_","a2","b2","identifier","orderBy","v","lastIndexOf","_currentView","search","remove","_nc_navigation","_column","isValidColumn","getDefaultExportFromCjs","x","__esModule","hasOwnProperty","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","merge","arrayMode","len","getValue","isName","string","getAllMatches","regex","matches","allmatches","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","isArray","pattern","test","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","node2json","requireNode2json","compress","arr","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","val","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","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","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","fromCharCode","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","jArray","fxpExports","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","L","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","_view","isValidView","TypeError","jsonObject","toLowerCase","isSvg","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","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","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","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","version","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","valid","throwErrors","er","requireParse","requireValid","major_1","hasRequiredMajor","requireMajor","ProxyBus","bus","bus2","getVersion","SimpleBus","handlers","Map","h2","e2","Proxy","_eventBus","_nc_event_bus","_nc_filelist_filters","has","getNewFileMenuEntries","_nc_newfilemenu","sensitivity","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","UploadCancelledError","uploadData","uploadData2","uploadOptions","onUploadProgress","onUploadRetry","retries","Blob","destinationFile","request","retryDelay","retryCount","retryCondition","onRetry","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","o","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","getChild","addChildren","FileSystemDirectoryEntry","reader","filePath","relPath","Eta","_done","_total","_progress","_elapsedTime","_speed","_eta","Infinity","_cutoffTime","resume","cutoffTime","done","deltaDone","deltaTime","historyNeeded","alpha","filtered","eta","cancelable","progress","time","timeReadable","seconds","hours","padStart","minutes","speed","speedReadable","UploaderStatus","UploaderStatus2","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","upload2","partialSum","pending","INITIALIZED","UPLOADING","ASSEMBLING","addNotifier","notifier","_notifyAll","batchUpload","files2","rootFolder","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","supportsPublicChunking","dav","public_shares_chunking","disabledChunkUpload","blob","bytes","_mtimeHeader","tempUrl","chunksWorkspace","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","request2","chunkBytes","progressBytes","onIdle","normalizeComponent","scriptExports","render6","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","IconCancel","IconFolderUpload","IconPlus","IconUpload","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","content","getConflicts","contentNames","NcActionCaption","accept","multiple","noMenu","primary","allowFolders","progressTimeId","newFileMenuEntries","uploadManager","menuEntriesUpload","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","hasFailure","isAssembling","isUploading","isOnlyAssembling","isPaused","PAUSED","buttonLabel","haveMenu","setDestination","onUploadCompletion","etaTimeAndSpeed","onTriggerPick","uploadFolders","webkitdirectory","click","onPick","contentsCallback","filesToUpload","defineProperty","resetForm","form","forceRecreate","_nc_uploader","ConflictPicker","picker","h","recursiveUpload","submit","$destroy","removeChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","r","getter","d","definition","enumerable","f","chunkId","u","g","globalThis","prop","l","script","needAttach","scripts","s","getAttribute","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","head","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files-main.js?v=95e077c327819bd3582c","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files_trashbin/src/files_views/columns.ts","webpack:///nextcloud/apps/files_trashbin/src/services/client.ts","webpack:///nextcloud/apps/files_trashbin/src/services/trashbin.ts","webpack:///nextcloud/apps/files_trashbin/src/files_views/trashbinView.ts","webpack:///nextcloud/apps/files/src/actions/deleteUtils.ts","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=template&id=209aff25","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPie.vue?421f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=template&id=90a70766","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?a381","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack://nextcloud/./apps/files/src/views/Settings.vue?b871","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue","webpack:///nextcloud/apps/files/src/composables/useNavigation.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationItem.vue?172f","webpack:///nextcloud/apps/files/src/filters/FilenameFilter.ts","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/composables/useFilenameFilter.ts","webpack://nextcloud/./apps/files/src/views/Navigation.vue?e289","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountPlus.vue?2818","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=template&id=53a26aa0","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Reload.vue?2e35","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=template&id=39a07256","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?5dae","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=template&id=64cece03","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGrid.vue?4e55","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=template&id=672ea5c8","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/composables/useFileListHeaders.ts","webpack:///nextcloud/apps/files/src/composables/useFileListWidth.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?2c1b","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrayArrowDown.vue?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=5dbf2618","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?760a","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/renaming.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/apps/files/src/mixins/actionsMixin.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?2241","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?0ccc","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryCheckbox.vue?a18b","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=15fca808","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?dbe9","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?36f6","webpack:///nextcloud/apps/files/src/utils/dragUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntryMixin.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/utils/permissions.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue","webpack:///nextcloud/apps/files/src/utils/filenameValidity.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?db86","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderOpen.vue?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=ae0c5fc0","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Key.vue?157c","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=template&id=499b3412","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Network.vue?11eb","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=template&id=7bf2ec80","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Tag.vue?6116","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=template&id=356230e0","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/PlayCircle.vue?0c26","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=template&id=3cc1493c","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?1937","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?949d","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?a84b","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?9c70","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?ac4e","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?055a","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e7ad","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?c823","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?5a78","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?cd1b","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?c927","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?2ac7","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/HotKeysService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=08f77d70&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=0ca874fa&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=9a0994e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=084c464a&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DdKmqUaK.mjs","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};","// 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, `.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:\"\";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: var(--default-clickable-area);\\n\\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Star icon in the top right\\n\\t.files-list__row-icon-favorite {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: var(--font-size-small);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\\n@media screen and (max-width: 768px) {\\n\\t// there is no mtime\\n\\t.files-list--grid tbody.files-list__tbody {\\n\\t\\t--mtime-height: 0px;\\n\\n\\t\\t// so we move the action to the name\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\tinset-block-end: var(--item-padding);\\n\\t\\t}\\n\\n\\t\\t// and we need to keep space on the name for the actions\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tpadding-inline-end: var(--clickable-area) !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, `.files-list__row-actions-batch[data-v-c463105a]{flex:1 1 100% !important;max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\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, `.files-list__column[data-v-06480c18]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-06480c18]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\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, `.favorite-marker-icon[data-v-0b2a4155]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-0b2a4155] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 26px !important;\\n\\t\\t\\theight: 26px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialUserConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n grid_view: false,\n show_mime_column: true,\n show_dialog_file_extension: true,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const getPinia = () => {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Column, Node } from '@nextcloud/files';\nimport { formatRelativeTime, getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n';\nimport { dirname } from '@nextcloud/paths';\nimport Vue from 'vue';\nimport NcUserBubble from '@nextcloud/vue/components/NcUserBubble';\nexport const originalLocation = new Column({\n id: 'files_trashbin--original-location',\n title: t('files_trashbin', 'Original location'),\n render(node) {\n const originalLocation = parseOriginalLocation(node);\n const span = document.createElement('span');\n span.title = originalLocation;\n span.textContent = originalLocation;\n return span;\n },\n sort(nodeA, nodeB) {\n const locationA = parseOriginalLocation(nodeA);\n const locationB = parseOriginalLocation(nodeB);\n return locationA.localeCompare(locationB, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' });\n },\n});\nexport const deletedBy = new Column({\n id: 'files_trashbin--deleted-by',\n title: t('files_trashbin', 'Deleted by'),\n render(node) {\n const { userId, displayName, label } = parseDeletedBy(node);\n if (label) {\n const span = document.createElement('span');\n span.textContent = label;\n return span;\n }\n const UserBubble = Vue.extend(NcUserBubble);\n const propsData = {\n size: 32,\n user: userId ?? undefined,\n displayName: displayName ?? userId,\n };\n const userBubble = new UserBubble({ propsData }).$mount().$el;\n return userBubble;\n },\n sort(nodeA, nodeB) {\n const deletedByA = parseDeletedBy(nodeA);\n const deletedbyALabel = deletedByA.label ?? deletedByA.displayName ?? deletedByA.userId;\n const deletedByB = parseDeletedBy(nodeB);\n const deletedByBLabel = deletedByB.label ?? deletedByB.displayName ?? deletedByB.userId;\n // label is set if uid and display name are unset - if label is unset at least uid or display name is set.\n return deletedbyALabel.localeCompare(deletedByBLabel, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' });\n },\n});\nexport const deleted = new Column({\n id: 'files_trashbin--deleted',\n title: t('files_trashbin', 'Deleted'),\n render(node) {\n const deletionTime = node.attributes?.['trashbin-deletion-time'] || ((node?.mtime?.getTime() ?? 0) / 1000);\n const span = document.createElement('span');\n if (deletionTime) {\n const formatter = Intl.DateTimeFormat([getCanonicalLocale()], { dateStyle: 'long', timeStyle: 'short' });\n const timestamp = new Date(deletionTime * 1000);\n span.title = formatter.format(timestamp);\n span.textContent = formatRelativeTime(timestamp, { ignoreSeconds: t('files', 'few seconds ago') });\n return span;\n }\n // Unknown deletion time\n span.textContent = t('files_trashbin', 'A long time ago');\n return span;\n },\n sort(nodeA, nodeB) {\n // deletion time is a unix timestamp while mtime is a JS Date -> we need to align the numbers (seconds vs milliseconds)\n const deletionTimeA = nodeA.attributes?.['trashbin-deletion-time'] || ((nodeA?.mtime?.getTime() ?? 0) / 1000);\n const deletionTimeB = nodeB.attributes?.['trashbin-deletion-time'] || ((nodeB?.mtime?.getTime() ?? 0) / 1000);\n return deletionTimeB - deletionTimeA;\n },\n});\n/**\n * Get the original file location of a trashbin file.\n *\n * @param node The node to parse\n */\nfunction parseOriginalLocation(node) {\n const path = stringOrNull(node.attributes?.['trashbin-original-location']);\n if (!path) {\n return t('files_trashbin', 'Unknown');\n }\n const dir = dirname(path);\n if (dir === path) { // Node is in root folder\n return t('files_trashbin', 'All files');\n }\n return dir.replace(/^\\//, '');\n}\n/**\n * Parse a trashbin file to get information about the user that deleted the file.\n *\n * @param node The node to parse\n */\nfunction parseDeletedBy(node) {\n const userId = stringOrNull(node.attributes?.['trashbin-deleted-by-id']);\n const displayName = stringOrNull(node.attributes?.['trashbin-deleted-by-display-name']);\n let label;\n const currentUserId = getCurrentUser()?.uid;\n if (userId === currentUserId) {\n label = t('files_trashbin', 'You');\n }\n if (!userId && !displayName) {\n label = t('files_trashbin', 'Unknown');\n }\n return {\n userId,\n displayName,\n label,\n };\n}\n/**\n * If the attribute is given it will be stringified and returned - otherwise null is returned.\n *\n * @param attribute The attribute to check\n */\nfunction stringOrNull(attribute) {\n if (attribute) {\n return String(attribute);\n }\n return null;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { davGetClient } from '@nextcloud/files';\n// init webdav client\nexport const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash`;\nexport const client = davGetClient();\n","import { File, Folder, davResultToNode, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { client, rootPath } from './client';\nimport { generateUrl } from '@nextcloud/router';\nconst data = `<?xml version=\"1.0\"?>\n<d:propfind ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t<nc:trashbin-deletion-time />\n\t\t<nc:trashbin-original-location />\n\t\t<nc:trashbin-title />\n\t\t<nc:trashbin-deleted-by-id />\n\t\t<nc:trashbin-deleted-by-display-name />\n\t\t${getDavProperties()}\n\t</d:prop>\n</d:propfind>`;\nconst resultToNode = (stat) => {\n const node = davResultToNode(stat, rootPath);\n node.attributes.previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', { fileid: node.fileid });\n return node;\n};\nexport const getContents = async (path = '/') => {\n const contentsResponse = await client.getDirectoryContents(`${rootPath}${path}`, {\n details: true,\n data,\n includeSelf: true,\n });\n const contents = contentsResponse.data.map(resultToNode);\n const [folder] = contents.splice(contents.findIndex((node) => node.path === path), 1);\n return {\n folder: folder,\n contents,\n };\n};\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { View } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { deleted, deletedBy, originalLocation } from './columns.ts';\nimport { getContents } from '../services/trashbin.ts';\nimport svgDelete from '@mdi/svg/svg/delete.svg?raw';\nexport const TRASHBIN_VIEW_ID = 'trashbin';\nexport const trashbinView = new View({\n id: TRASHBIN_VIEW_ID,\n name: t('files_trashbin', 'Deleted files'),\n caption: t('files_trashbin', 'List of files that have been deleted.'),\n emptyTitle: t('files_trashbin', 'No deleted files'),\n emptyCaption: t('files_trashbin', 'Files and folders you have deleted will show up here'),\n icon: svgDelete,\n order: 50,\n sticky: true,\n defaultSortKey: 'deleted',\n columns: [\n originalLocation,\n deletedBy,\n deleted,\n ],\n getContents,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { FileType } from '@nextcloud/files';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { n, t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nexport const isTrashbinEnabled = () => getCapabilities()?.files?.undelete === true;\nexport const canUnshareOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'shared');\n};\nexport const canDisconnectOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'external');\n};\nexport const isMixedUnshareAndDelete = (nodes) => {\n if (nodes.length === 1) {\n return false;\n }\n const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n return hasSharedItems && hasDeleteItems;\n};\nexport const isAllFiles = (nodes) => {\n return !nodes.some(node => node.type !== FileType.File);\n};\nexport const isAllFolders = (nodes) => {\n return !nodes.some(node => node.type !== FileType.Folder);\n};\nexport const displayName = (nodes, view) => {\n /**\n * If those nodes are all the root node of a\n * share, we can only unshare them.\n */\n if (canUnshareOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Leave this share');\n }\n return t('files', 'Leave these shares');\n }\n /**\n * If those nodes are all the root node of an\n * external storage, we can only disconnect it.\n */\n if (canDisconnectOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Disconnect storage');\n }\n return t('files', 'Disconnect storages');\n }\n /**\n * If we're in the trashbin, we can only delete permanently\n */\n if (view.id === 'trashbin' || !isTrashbinEnabled()) {\n return t('files', 'Delete permanently');\n }\n /**\n * If we're in the sharing view, we can only unshare\n */\n if (isMixedUnshareAndDelete(nodes)) {\n return t('files', 'Delete and unshare');\n }\n /**\n * If we're only selecting files, use proper wording\n */\n if (isAllFiles(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete file');\n }\n return t('files', 'Delete files');\n }\n /**\n * If we're only selecting folders, use proper wording\n */\n if (isAllFolders(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete folder');\n }\n return t('files', 'Delete folders');\n }\n return t('files', 'Delete');\n};\nexport const askConfirmation = async (nodes, view) => {\n const message = view.id === 'trashbin' || !isTrashbinEnabled()\n ? n('files', 'You are about to permanently delete {count} item', 'You are about to permanently delete {count} items', nodes.length, { count: nodes.length })\n : n('files', 'You are about to delete {count} item', 'You are about to delete {count} items', nodes.length, { count: nodes.length });\n return new Promise(resolve => {\n // TODO: Use the new dialog API\n window.OC.dialogs.confirmDestructive(message, t('files', 'Confirm deletion'), {\n type: window.OC.dialogs.YES_NO_BUTTONS,\n confirm: displayName(nodes, view),\n confirmClasses: 'error',\n cancel: t('files', 'Cancel'),\n }, (decision) => {\n resolve(decision);\n });\n });\n};\nexport const deleteNode = async (node) => {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\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')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showInfo } from '@nextcloud/dialogs';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport PQueue from 'p-queue';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport { TRASHBIN_VIEW_ID } from '../../../files_trashbin/src/files_views/trashbinView.ts';\nimport { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, isTrashbinEnabled } from './deleteUtils.ts';\nimport logger from '../logger.ts';\nconst queue = new PQueue({ concurrency: 5 });\nexport const ACTION_DELETE = 'delete';\nexport const action = new FileAction({\n id: ACTION_DELETE,\n displayName,\n iconSvgInline: (nodes) => {\n if (canUnshareOnly(nodes)) {\n return CloseSvg;\n }\n if (canDisconnectOnly(nodes)) {\n return NetworkOffSvg;\n }\n return TrashCanSvg;\n },\n enabled(nodes, view) {\n if (view.id === TRASHBIN_VIEW_ID) {\n const config = loadState('files_trashbin', 'config', { allow_delete: true });\n if (config.allow_delete === false) {\n return false;\n }\n }\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node, view) {\n try {\n let confirm = true;\n // Trick to detect if the action was called from a keyboard event\n // we need to make sure the method calling have its named containing 'keydown'\n // here we use `onKeydown` method from the FileEntryActions component\n const callStack = new Error().stack || '';\n const isCalledFromEventListener = callStack.toLocaleLowerCase().includes('keydown');\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled() || isCalledFromEventListener) {\n confirm = await askConfirmation([node], view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return null;\n }\n await deleteNode(node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view) {\n let confirm = true;\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled()) {\n confirm = await askConfirmation(nodes, view);\n }\n else if (nodes.length >= 5 && !canUnshareOnly(nodes) && !canDisconnectOnly(nodes)) {\n confirm = await askConfirmation(nodes, view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return Promise.all(nodes.map(() => null));\n }\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await deleteNode(node);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: 100,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { encodePath } from '@nextcloud/paths';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport axios from '@nextcloud/axios';\nimport PQueue from 'p-queue';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_FAVORITE = 'favorite';\nconst queue = new PQueue({ concurrency: 5 });\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: ACTION_FAVORITE,\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // Not enabled for public shares\n if (isPublicShare()) {\n return false;\n }\n // We can only favorite nodes if they are located in files\n return nodes.every(node => node.root?.startsWith?.('/files'))\n // and we have permissions\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await favoriteNode(node, view, willFavorite);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while adding file to favorite', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_RENAME = 'rename';\nexport const action = new FileAction({\n id: ACTION_RENAME,\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes, view) => {\n if (nodes.length === 0) {\n return false;\n }\n // Disable for single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // Only enable if all nodes have the delete permission\n return nodes.every((node) => Boolean(node.permissions & Permission.DELETE));\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","import { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n if (isPublicShare()) {\n return false;\n }\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // If the sidebar is already open for the current file, do nothing\n if (window.OCA.Files.Sidebar.file === node.path) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n // Open sidebar and set active tab to sharing by default\n window.OCA.Files.Sidebar.setActiveTab('sharing');\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP?.Files?.Router?.goToRoute(null, { view: view.id, fileid: String(node.fileid) }, { ...window.OCP.Files.Router.query, dir, opendetails: 'true' }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger.ts';\nexport const useActiveStore = function (...args) {\n const store = defineStore('active', {\n state: () => ({\n _initialized: false,\n activeNode: null,\n activeView: null,\n activeAction: null,\n }),\n actions: {\n setActiveNode(node) {\n if (!node) {\n throw new Error('Use clearActiveNode to clear the active node');\n }\n logger.debug('Setting active node', { node });\n this.activeNode = node;\n },\n clearActiveNode() {\n this.activeNode = null;\n },\n onDeletedNode(node) {\n if (this.activeNode && this.activeNode.source === node.source) {\n this.clearActiveNode();\n }\n },\n setActiveAction(action) {\n this.activeAction = action;\n },\n clearActiveAction() {\n this.activeAction = null;\n },\n onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n this.activeView = view;\n this.clearActiveNode();\n },\n },\n });\n const activeStore = store(...args);\n const navigation = getNavigation();\n // Make sure we only register the listeners once\n if (!activeStore._initialized) {\n subscribe('files:node:deleted', activeStore.onDeletedNode);\n activeStore._initialized = true;\n activeStore.onChangedView(navigation.active);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n activeStore.onChangedView(event.detail);\n });\n }\n return activeStore;\n};\n","import { NodeStatus } from '@nextcloud/files';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getPinia } from '../store';\nimport { useActiveStore } from '../store/active';\nimport logger from '../logger';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport const executeAction = async (action) => {\n const activeStore = useActiveStore(getPinia());\n const currentDir = (window?.OCP?.Files?.Router?.query?.dir || '/');\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentNode || !currentView) {\n logger.error('No active node or view', { node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n if (!action.enabled([currentNode], currentView)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName([currentNode], currentView);\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.setActiveAction(action);\n const success = await action.exec(currentNode, currentView, currentDir);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '\"{displayName}\" action executed successfully', { displayName }));\n return;\n }\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.clearActiveAction();\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"files\"}},[(!_vm.isPublic)?_c('Navigation'):_vm._e(),_vm._v(\" \"),_c('FilesList',{attrs:{\"is-public\":_vm.isPublic}})],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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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!./Cog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=209aff25\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon chart-pie-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=\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChartPieIcon\",\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!./ChartPie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartPie.vue?vue&type=template&id=90a70766\"\nimport script from \"./ChartPie.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPie.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 chart-pie-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\":\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\"}},[(_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<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-description=\"t('files', 'Storage information')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:aria-label=\"t('files', 'Storage quota')\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { debounce, throttle } from 'throttle-debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\n\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcProgressBar from '@nextcloud/vue/components/NcProgressBar'\n\nimport logger from '../logger.ts'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, false)\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmounted() {\n\t\t// If the user has a quota set, warn if the available account storage is <=0\n\t\t//\n\t\t// NOTE: This doesn't catch situations where actual *server*\n\t\t// disk (non-quota) space is low, but those should probably\n\t\t// be handled differently anyway since a regular user can't\n\t\t// can't do much about them (If we did want to indicate server disk\n\t\t// space matters to users, we'd probably want to use a warning\n\t\t// specific to that situation anyhow. So this covers warning covers\n\t\t// our primary day-to-day concern (individual account quota usage).\n\t\t//\n\t\tif (this.storageStats?.quota > 0 && this.storageStats?.free === 0) {\n\t\t\tthis.showStorageFullWarning()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\n\t\t\t\t// Warn the user if the available account storage changed from > 0 to 0\n\t\t\t\t// (unless only because quota was intentionally set to 0 by admin in the interim)\n\t\t\t\tif (this.storageStats?.free > 0 && response.data.data?.free === 0 && response.data.data?.quota > 0) {\n\t\t\t\t\tthis.showStorageFullWarning()\n\t\t\t\t}\n\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tshowStorageFullWarning() {\n\t\t\tshowError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!'))\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\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!./NavigationQuota.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!./NavigationQuota.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!./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&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!./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=d3cdbf54&scoped=true\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=d3cdbf54&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 \"d3cdbf54\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-description\":_vm.t('files', 'Storage information'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"aria-label\":_vm.t('files', 'Storage quota'),\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"name\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"name\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_favorites_first\",\"checked\":_vm.userConfig.sort_favorites_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_favorites_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort favorites first'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_folders_first\",\"checked\":_vm.userConfig.sort_folders_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_folders_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort folders before files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_hidden\",\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_mime_column\",\"checked\":_vm.userConfig.show_mime_column},on:{\"update:checked\":function($event){return _vm.setConfig('show_mime_column', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show file type column'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"crop_image_previews\",\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.enableGridView)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"grid_view\",\"checked\":_vm.userConfig.grid_view},on:{\"update:checked\":function($event){return _vm.setConfig('grid_view', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable the grid view'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"folder_tree\",\"checked\":_vm.userConfig.folder_tree},on:{\"update:checked\":function($event){return _vm.setConfig('folder_tree', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable folder tree'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"name\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"name\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"label\":_vm.t('files', 'WebDAV URL'),\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"warning\",\"name\":_vm.t('files', 'Warnings')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Prevent warning dialogs from open or reenable them.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.userConfig.show_dialog_file_extension},on:{\"update:checked\":function($event){return _vm.setConfig('show_dialog_file_extension', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show a warning dialog when changing a file extension.'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"shortcuts\",\"name\":_vm.t('files', 'Keyboard shortcuts')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Speed up your Files experience with these quick shortcuts.')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Actions')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"a\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the actions menu for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"F2\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Rename a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Del\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Delete a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"s\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Favorite or remove a file from favorites'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.isSystemtagsEnabled)?_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"t\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Manage tags for a file'))+\"\\n\\t\\t\\t\\t\")])]):_vm._e()]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Selection')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"A\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"ESC\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Deselect all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Space\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select or deselect a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Shift\")]),_vm._v(\" \"),_c('span',[_vm._v(\"+ \"),_c('kbd',[_vm._v(\"Space\")])])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select a range of files'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Navigation')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Alt\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the parent folder'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file above'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↓\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file below'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"←\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the left (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"→\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the right (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'View')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"V\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Toggle the grid view'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"D\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the sidebar for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"?\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show those shortcuts'))+\"\\n\\t\\t\\t\\t\")])])])])],1)\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-->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.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!./Setting.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=315a4ce8\"\nimport script from \"./Setting.vue?vue&type=script&lang=js\"\nexport * from \"./Setting.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')\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!./Settings.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!./Settings.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<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :name=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_favorites_first\"\n\t\t\t\t:checked=\"userConfig.sort_favorites_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_favorites_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort favorites first') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_folders_first\"\n\t\t\t\t:checked=\"userConfig.sort_folders_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_folders_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort folders before files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_hidden\"\n\t\t\t\t:checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_mime_column\"\n\t\t\t\t:checked=\"userConfig.show_mime_column\"\n\t\t\t\t@update:checked=\"setConfig('show_mime_column', $event)\">\n\t\t\t\t{{ t('files', 'Show file type column') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"crop_image_previews\"\n\t\t\t\t:checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-if=\"enableGridView\"\n\t\t\t\tdata-cy-files-settings-setting=\"grid_view\"\n\t\t\t\t:checked=\"userConfig.grid_view\"\n\t\t\t\t@update:checked=\"setConfig('grid_view', $event)\">\n\t\t\t\t{{ t('files', 'Enable the grid view') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"folder_tree\"\n\t\t\t\t:checked=\"userConfig.folder_tree\"\n\t\t\t\t@update:checked=\"setConfig('folder_tree', $event)\">\n\t\t\t\t{{ t('files', 'Enable folder tree') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:name=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :name=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:label=\"t('files', 'WebDAV URL')\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"warning\" :name=\"t('files', 'Warnings')\">\n\t\t\t<em>{{ t('files', 'Prevent warning dialogs from open or reenable them.') }}</em>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"userConfig.show_dialog_file_extension\"\n\t\t\t\t@update:checked=\"setConfig('show_dialog_file_extension', $event)\">\n\t\t\t\t{{ t('files', 'Show a warning dialog when changing a file extension.') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"shortcuts\"\n\t\t\t:name=\"t('files', 'Keyboard shortcuts')\">\n\t\t\t<em>{{ t('files', 'Speed up your Files experience with these quick shortcuts.') }}</em>\n\n\t\t\t<h3>{{ t('files', 'Actions') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>a</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the actions menu for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>F2</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Rename a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Del</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Delete a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>s</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Favorite or remove a file from favorites') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"isSystemtagsEnabled\">\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>t</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Manage tags for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Selection') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>A</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>ESC</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Deselect all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Space</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select or deselect a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Shift</kbd> <span>+ <kbd>Space</kbd></span>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select a range of files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Navigation') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Alt</kbd> + <kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the parent folder') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file above') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↓</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file below') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>←</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the left (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>→</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the right (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'View') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>V</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Toggle the grid view') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>D</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the sidebar for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>?</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Show those shortcuts') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey'\n\nimport Clipboard from 'vue-material-design-icons/ContentCopy.vue'\nimport NcAppSettingsDialog from '@nextcloud/vue/components/NcAppSettingsDialog'\nimport NcAppSettingsSection from '@nextcloud/vue/components/NcAppSettingsSection'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcInputField from '@nextcloud/vue/components/NcInputField'\n\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport Setting from '../components/Setting.vue'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\tconst isSystemtagsEnabled = getCapabilities()?.systemtags?.enabled === true\n\t\treturn {\n\t\t\tisSystemtagsEnabled,\n\t\t\tuserConfigStore,\n\t\t\tt,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t\tenableGridView: (loadState('core', 'config', [])['enable_non-accessible_features'] ?? true),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// ? opens the settings dialog on the keyboard shortcuts section\n\t\tuseHotKey('?', this.showKeyboardShortcuts, {\n\t\t\tstop: true,\n\t\t\tprevent: true,\n\t\t})\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tasync showKeyboardShortcuts() {\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\tawait this.$nextTick()\n\t\t\tdocument.getElementById('settings-section_shortcuts').scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\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!./Settings.vue?vue&type=style&index=0&id=9a0994e0&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!./Settings.vue?vue&type=style&index=0&id=9a0994e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=9a0994e0&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=9a0994e0&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 \"9a0994e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',_vm._l((_vm.currentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,staticClass:\"files-navigation__item\",style:(_vm.style),attrs:{\"allow-collapse\":\"\",\"loading\":view.loading,\"data-cy-files-navigation-item\":view.id,\"exact\":_vm.useExactRouteMatching(view),\"icon\":view.iconClass,\"name\":view.name,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":(open) => _vm.onOpen(open, view)},scopedSlots:_vm._u([(view.icon)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(view.loadChildViews && !view.loaded)?_c('li',{staticStyle:{\"display\":\"none\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasChildViews(view))?_c('FilesNavigationItem',{attrs:{\"parent\":view,\"level\":_vm.level + 1,\"views\":_vm.filterView(_vm.views, _vm.parent.id)}}):_vm._e()],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue';\n/**\n * Composable to get the currently active files view from the files navigation\n * @param _loaded If set enforce a current view is loaded\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useNavigation(_loaded) {\n const navigation = getNavigation();\n const views = shallowRef(navigation.views);\n const currentView = shallowRef(navigation.active);\n /**\n * Event listener to update the `currentView`\n * @param event The update event\n */\n function onUpdateActive(event) {\n currentView.value = event.detail;\n }\n /**\n * Event listener to update all registered views\n */\n function onUpdateViews() {\n views.value = navigation.views;\n triggerRef(views);\n }\n onMounted(() => {\n navigation.addEventListener('update', onUpdateViews);\n navigation.addEventListener('updateActive', onUpdateActive);\n subscribe('files:navigation:updated', onUpdateViews);\n });\n onUnmounted(() => {\n navigation.removeEventListener('update', onUpdateViews);\n navigation.removeEventListener('updateActive', onUpdateActive);\n });\n return {\n currentView,\n views,\n };\n}\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config:updated', { view, key, value });\n }\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationItem.vue?vue&type=template&id=71eac8ba\"\nimport script from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\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","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileListFilter } from '@nextcloud/files';\n/**\n * Simple file list filter controlled by the Navigation search box\n */\nexport class FilenameFilter extends FileListFilter {\n searchQuery = '';\n constructor() {\n super('files:filename', 5);\n }\n filter(nodes) {\n const queryParts = this.searchQuery.toLocaleLowerCase().split(' ').filter(Boolean);\n return nodes.filter((node) => {\n const displayname = node.displayname.toLocaleLowerCase();\n return queryParts.every((part) => displayname.includes(part));\n });\n }\n reset() {\n this.updateQuery('');\n }\n updateQuery(query) {\n query = (query || '').trim();\n // Only if the query is different we update the filter to prevent re-computing all nodes\n if (query !== this.searchQuery) {\n this.searchQuery = query;\n this.filterUpdated();\n const chips = [];\n if (query !== '') {\n chips.push({\n text: query,\n onclick: () => {\n this.updateQuery('');\n },\n });\n }\n this.updateChips(chips);\n // Emit the new query as it might have come not from the Navigation\n this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }));\n }\n }\n}\n","import { emit, subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport logger from '../logger';\n/**\n * Check if the given value is an instance file list filter with mount function\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'mount' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n * @private\n */\n function onFilterUpdate() {\n emit('files:filters:changed');\n }\n /**\n * Event handler for filter chips updates\n * @param event The update event\n * @private\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n * @private\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n // Initialize the store\n subscribe('files:navigation:changed', onViewChanged);\n subscribe('files:filter:added', addFilter);\n subscribe('files:filter:removed', removeFilter);\n for (const filter of getFileListFilters()) {\n addFilter(filter);\n }\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n // getters / computed\n activeChips,\n sortedFilters,\n // actions / methods\n addFilter,\n removeFilter,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppNavigation',{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_vm.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c('NcAppNavigationSearch',{attrs:{\"label\":_vm.t('files', 'Filter file names …')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})]},proxy:true},{key:\"default\",fn:function(){return [_c('NcAppNavigationList',{staticClass:\"files-navigation__list\",attrs:{\"aria-label\":_vm.t('files', 'Views')}},[_c('FilesNavigationItem',{attrs:{\"views\":_vm.viewMap}})],1),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_vm.settingsOpened=$event},\"close\":_vm.onSettingsClose}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"name\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('IconCog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files';\nimport { watchThrottled } from '@vueuse/core';\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { FilenameFilter } from '../filters/FilenameFilter';\n/**\n * This is for the `Navigation` component to provide a filename filter\n */\nexport function useFilenameFilter() {\n const searchQuery = ref('');\n const filenameFilter = new FilenameFilter();\n /**\n * Updating the search query ref from the filter\n * @param event The update:query event\n */\n function updateQuery(event) {\n if (event.type === 'update:query') {\n searchQuery.value = event.detail;\n event.stopPropagation();\n }\n }\n onMounted(() => {\n filenameFilter.addEventListener('update:query', updateQuery);\n registerFileListFilter(filenameFilter);\n });\n onUnmounted(() => {\n filenameFilter.removeEventListener('update:query', updateQuery);\n unregisterFileListFilter(filenameFilter.id);\n });\n // Update the query on the filter, but throttle to max. every 800ms\n // This will debounce the filter refresh\n watchThrottled(searchQuery, () => {\n filenameFilter.updateQuery(searchQuery.value);\n }, { throttle: 800 });\n return {\n searchQuery,\n };\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!./Navigation.vue?vue&type=style&index=0&id=084c464a&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!./Navigation.vue?vue&type=style&index=0&id=084c464a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=084c464a&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=084c464a&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 \"084c464a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading,\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\",class:{ 'files-list__header--public': _vm.isPublic }},[_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canShare && _vm.fileListWidth >= 512)?_c('NcButton',{staticClass:\"files-list__header-share-button\",class:{ 'files-list__header-share-button--shared': _vm.shareButtonType },attrs:{\"aria-label\":_vm.shareButtonLabel,\"title\":_vm.shareButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.shareButtonType === _vm.ShareType.Link)?_c('LinkIcon'):_c('AccountPlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4106306959)}):_vm._e(),_vm._v(\" \"),(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"type\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),(_vm.fileListWidth >= 512 && _vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.toggleGridView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.userConfig.grid_view)?_c('ListViewIcon'):_c('ViewGridIcon')]},proxy:true}],null,false,1682960703)}):_vm._e()],1),_vm._v(\" \"),(!_vm.loading && _vm.canUpload && _vm.currentFolder)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir && _vm.currentFolder && _vm.currentView)?[_c('div',{staticClass:\"files-list__before\"},_vm._l((_vm.headers),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})}),1),_vm._v(\" \"),(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}],null,false,3448385010)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,2673163798)}):(_vm.currentView?.emptyView)?_c('div',{staticClass:\"files-list__empty-view-wrapper\"},[_c('div',{ref:\"customEmptyView\"})]):_c('NcEmptyContent',{attrs:{\"name\":_vm.currentView?.emptyTitle || _vm.t('files', 'No files in here'),\"description\":_vm.currentView?.emptyCaption || _vm.t('files', 'Upload some content or sync with your devices!'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([(_vm.directory !== '/')?{key:\"action\",fn:function(){return [(_vm.canUpload && !_vm.isQuotaExceeded)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_c('NcButton',{attrs:{\"to\":_vm.toPreviousDir,\"type\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView.icon}})]},proxy:true}],null,true)})]:_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted,\"summary\":_vm.summary}})],2)\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 account-plus-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=\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountPlusIcon\",\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!./AccountPlus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\nimport script from \"./AccountPlus.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPlus.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-plus-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\":\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,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 reload-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=\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ReloadIcon\",\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!./Reload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\nimport script from \"./Reload.vue?vue&type=script&lang=js\"\nexport * from \"./Reload.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 reload-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\":\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FormatListBulletedSquareIcon\",\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!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\nimport script from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulletedSquare.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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\"}},[(_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!./ViewGrid.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ViewGridIcon\",\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 \"./ViewGrid.vue?vue&type=template&id=672ea5c8\"\nimport script from \"./ViewGrid.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param path - The full path\n * @return [dirPath, fileName]\n */\nexport function extractFilePaths(path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n}\n/**\n * Generate a translated summary of an array of nodes\n *\n * @param nodes - The nodes to summarize\n * @param hidden - The number of hidden nodes\n */\nexport function getSummaryFor(nodes, hidden = 0) {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n const summary = [];\n if (fileCount > 0 || folderCount === 0) {\n const fileSummary = n('files', '%n file', '%n files', fileCount);\n summary.push(fileSummary);\n }\n if (folderCount > 0) {\n const folderSummary = n('files', '%n folder', '%n folders', folderCount);\n summary.push(folderSummary);\n }\n if (hidden > 0) {\n // TRANSLATORS: This is the number of hidden files or folders\n const hiddenSummary = n('files', '%n hidden', '%n hidden', hidden);\n summary.push(hiddenSummary);\n }\n return summary.join(' · ');\n}\n","import { getFileListHeaders } from '@nextcloud/files';\nimport { computed, ref } from 'vue';\n/**\n * Get the registered and sorted file list headers.\n */\nexport function useFileListHeaders() {\n const headers = ref(getFileListHeaders());\n const sorted = computed(() => [...headers.value].sort((a, b) => a.order - b.order));\n return sorted;\n}\n","import { onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst observer = new ResizeObserver((elements) => {\n if (elements[0].contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = elements[0].contentBoxSize[0].inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = elements[0].contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return readonly(width);\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","import { defineStore } from 'pinia';\nimport { dirname } from '@nextcloud/paths';\nimport { File, FileType, Folder, Node, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport logger from '../logger';\nimport { useFilesStore } from './files';\nexport const usePathsStore = function (...args) {\n const files = useFilesStore(...args);\n const store = defineStore('paths', {\n state: () => ({\n paths: {},\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.source);\n },\n deletePath(service, path) {\n // skip if service does not exist\n if (!this.paths[service]) {\n return;\n }\n Vue.delete(this.paths[service], path);\n },\n onCreatedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (!node.fileid) {\n logger.error('Node has no fileid', { node });\n return;\n }\n // Only add path if it's a folder\n if (node.type === FileType.Folder) {\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Update parent folder children if exists\n // If the folder is the root, get it and update it\n this.addNodeToParentChildren(node);\n },\n onDeletedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (node.type === FileType.Folder) {\n // Delete the path\n this.deletePath(service, node.path);\n }\n this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({ source: oldSource, owner: node.owner, mime: node.mime });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n },\n });\n const pathsStore = store(...args);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n subscribe('files:node:created', pathsStore.onCreatedNode);\n subscribe('files:node:deleted', pathsStore.onDeletedNode);\n subscribe('files:node:moved', pathsStore.onMovedNode);\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { usePathsStore } from './paths.ts';\nexport const useFilesStore = function (...args) {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by its source\n * @param state\n */\n getNode: (state) => (source) => state.files[source],\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n * @param state\n */\n getNodes: (state) => (sources) => sources\n .map(source => state.files[source])\n .filter(Boolean),\n /**\n * Get files or folders by their file ID\n * Multiple nodes can have the same file ID but different sources\n * (e.g. in a shared context)\n * @param state\n */\n getNodesById: (state) => (fileId) => Object.values(state.files).filter(node => node.fileid === fileId),\n /**\n * Get the root folder of a service\n * @param state\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n /**\n * Get cached child nodes within a given path\n *\n * @param service The service (files view)\n * @param path The path relative within the service\n * @return Array of cached nodes within the path\n */\n getNodesByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = this.getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = this.getNode(source);\n }\n }\n // If we found a cache entry and the cache entry was already loaded (has children) then use it\n return (folder?._children ?? [])\n .map((source) => this.getNode(source))\n .filter(Boolean);\n },\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.source) {\n Vue.delete(this.files, node.source);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n onCreatedNode(node) {\n this.updateNodes([node]);\n },\n onMovedNode({ node, oldSource }) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // Update the path of the node\n Vue.delete(this.files, oldSource);\n this.updateNodes([node]);\n },\n async onUpdatedNode(node) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = this.getNodesById(node.fileid);\n if (nodes.length > 1) {\n await Promise.all(nodes.map(node => fetchNode(node.path))).then(this.updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.fileid });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (node.source === nodes[0].source) {\n this.updateNodes([node]);\n return;\n }\n // Otherwise, it means we receive an event for a node that is not in the store\n fetchNode(node.path).then(n => this.updateNodes([n]));\n },\n // Handlers for legacy sidebar (no real nodes support)\n onAddFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n },\n onRemoveFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n },\n },\n });\n const fileStore = store(...args);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n subscribe('files:node:created', fileStore.onCreatedNode);\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n subscribe('files:node:updated', fileStore.onUpdatedNode);\n subscribe('files:node:moved', fileStore.onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', fileStore.onAddFavorite);\n subscribe('files:favorites:removed', fileStore.onRemoveFavorite);\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { computed } from 'vue';\nimport { useRoute } from 'vue-router/composables';\n/**\n * Get information about the current route\n */\nexport function useRouteParameters() {\n const route = useRoute();\n /**\n * Get the path of the current active directory\n */\n const directory = computed(() => String(route.query.dir || '/')\n // Remove any trailing slash but leave root slash\n .replace(/^(.+)\\/$/, '$1'));\n /**\n * Get the current fileId used on the route\n */\n const fileId = computed(() => {\n const fileId = Number.parseInt(route.params.fileid ?? '0') || null;\n return Number.isNaN(fileId) ? null : fileId;\n });\n /**\n * State of `openFile` route param\n */\n const openFile = computed(\n // if `openfile` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'openfile' in route.query && (typeof route.query.openfile !== 'string' || route.query.openfile.toLocaleLowerCase() !== 'false'));\n const openDetails = computed(\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'opendetails' in route.query && (typeof route.query.opendetails !== 'string' || route.query.opendetails.toLocaleLowerCase() !== 'false'));\n return {\n /** Path of currently open directory */\n directory,\n /** Current active fileId */\n fileId,\n /** Should the active node should be opened (`openFile` route param) */\n openFile,\n /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\n };\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n * @param lastSelectedIndex\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { getUploader } from '@nextcloud/upload';\nlet uploader;\nexport const useUploaderStore = function (...args) {\n // Only init on runtime\n uploader = getUploader();\n const store = defineStore('uploader', {\n state: () => ({\n queue: uploader.queue,\n }),\n });\n return store(...args);\n};\n","import { emit } from '@nextcloud/event-bus';\nimport { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport logger from '../logger.ts';\n/**\n * This represents a Directory in the file tree\n * We extend the File class to better handling uploading\n * and stay as close as possible as the Filesystem API.\n * This also allow us to hijack the size or lastModified\n * properties to compute them dynamically.\n */\nexport class Directory extends File {\n /* eslint-disable no-use-before-define */\n _contents;\n constructor(name, contents = []) {\n super([], name, { type: 'httpd/unix-directory' });\n this._contents = contents;\n }\n set contents(contents) {\n this._contents = contents;\n }\n get contents() {\n return this._contents;\n }\n get size() {\n return this._computeDirectorySize(this);\n }\n get lastModified() {\n if (this._contents.length === 0) {\n return Date.now();\n }\n return this._computeDirectoryMtime(this);\n }\n /**\n * Get the last modification time of a file tree\n * This is not perfect, but will get us a pretty good approximation\n * @param directory the directory to traverse\n */\n _computeDirectoryMtime(directory) {\n return directory.contents.reduce((acc, file) => {\n return file.lastModified > acc\n // If the file is a directory, the lastModified will\n // also return the results of its _computeDirectoryMtime method\n // Fancy recursion, huh?\n ? file.lastModified\n : acc;\n }, 0);\n }\n /**\n * Get the size of a file tree\n * @param directory the directory to traverse\n */\n _computeDirectorySize(directory) {\n return directory.contents.reduce((acc, entry) => {\n // If the file is a directory, the size will\n // also return the results of its _computeDirectorySize method\n // Fancy recursion, huh?\n return acc + entry.size;\n }, 0);\n }\n}\n/**\n * Traverse a file tree using the Filesystem API\n * @param entry the entry to traverse\n */\nexport const traverseTree = async (entry) => {\n // Handle file\n if (entry.isFile) {\n return new Promise((resolve, reject) => {\n entry.file(resolve, reject);\n });\n }\n // Handle directory\n logger.debug('Handling recursive file tree', { entry: entry.name });\n const directory = entry;\n const entries = await readDirectory(directory);\n const contents = (await Promise.all(entries.map(traverseTree))).flat();\n return new Directory(directory.name, contents);\n};\n/**\n * Read a directory using Filesystem API\n * @param directory the directory to read\n */\nconst readDirectory = (directory) => {\n const dirReader = directory.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n const getEntries = () => {\n dirReader.readEntries((results) => {\n if (results.length) {\n entries.push(...results);\n getEntries();\n }\n else {\n resolve(entries);\n }\n }, (error) => {\n reject(error);\n });\n };\n getEntries();\n });\n};\nexport const createDirectoryIfNotExists = async (absolutePath) => {\n const davClient = davGetClient();\n const dirExists = await davClient.exists(absolutePath);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { absolutePath });\n await davClient.createDirectory(absolutePath, { recursive: true });\n const stat = await davClient.stat(absolutePath, { details: true, data: davGetDefaultPropfind() });\n emit('files:node:created', davResultToNode(stat.data));\n }\n};\nexport const resolveConflict = async (files, destination, contents) => {\n try {\n // List all conflicting files\n const conflicts = files.filter((file) => {\n return contents.find((node) => node.basename === (file instanceof File ? file.name : file.basename));\n }).filter(Boolean);\n // List of incoming files that are NOT in conflict\n const uploads = files.filter((file) => {\n return !conflicts.includes(file);\n });\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, conflicts, contents);\n logger.debug('Conflict resolution', { uploads, selected, renamed });\n // If the user selected nothing, we cancel the upload\n if (selected.length === 0 && renamed.length === 0) {\n // User skipped\n showInfo(t('files', 'Conflicts resolution skipped'));\n logger.info('User skipped the conflict resolution');\n return [];\n }\n // Update the list of files to upload\n return [...uploads, ...selected, ...renamed];\n }\n catch (error) {\n console.error(error);\n // User cancelled\n showError(t('files', 'Upload cancelled'));\n logger.error('User cancelled the upload');\n }\n return [];\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\nimport { loadState } from '@nextcloud/initial-state';\nconst sharePermissions = loadState('files_sharing', 'sharePermissions', Permission.NONE);\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n// Maximum number of concurrent operations\nconst MAX_CONCURRENCY = 5;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: MAX_CONCURRENCY });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.value === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n if (!canDownload(nodes)) {\n return false;\n }\n // it cannot be copied if the user has only view permissions\n if (nodes.some((node) => node.permissions === Permission.NONE)) {\n return false;\n }\n // on public shares all files have the same permission so copy is only possible if write permission is granted\n if (isPublicShare()) {\n return Boolean(sharePermissions & Permission.CREATE);\n }\n // otherwise permission is granted\n return true;\n};\n","import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { join } from 'path';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.ts';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param stat The result returned by the webdav library\n */\nexport const resultToNode = (stat) => davResultToNode(stat);\nexport const getContents = (path = '/') => {\n path = join(davRootPath, path);\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path && `${root.filename}/` !== path) {\n logger.debug(`Exepected \"${path}\" but got filename \"${root.filename}\" instead.`);\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map((result) => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError, showInfo, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName, Permission } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Create a loading notification toast\n * @param mode The move or copy mode\n * @param source Name of the node that is copied / moved\n * @param destination Destination path\n * @return {() => void} Function to hide the notification\n */\nfunction createLoadingNotification(mode, source, destination) {\n const text = mode === MoveCopyAction.MOVE ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source, destination }) : t('files', 'Copying \"{source}\" to \"{destination}\" …', { source, destination });\n let toast;\n toast = showInfo(`<span class=\"icon icon-loading-small toast-loading-icon\"></span> ${text}`, {\n isHTML: true,\n timeout: TOAST_PERMANENT_TIMEOUT,\n onRemove: () => { toast?.hideToast(); toast = undefined; },\n });\n return () => toast && toast.hideToast();\n}\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n // Do not allow to MOVE a node to the same folder it is already located\n if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n /**\n * Example:\n * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n * Allow move of /foo does not start with /foo/bar/file.txt so allow\n * - node: /foo , destination: /foo/bar\n * Do not allow as it would copy foo within itself\n * - node: /foo/bar.txt, destination: /foo\n * Allow copy a file to the same directory\n * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n * Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n */\n if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const actionFinished = createLoadingNotification(method, node.basename, destination.path);\n const queue = getQueue();\n return await queue.add(async () => {\n const copySuffix = (index) => {\n if (index === 1) {\n return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n }\n return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n };\n try {\n const client = davGetClient();\n const currentPath = join(davRootPath, node.path);\n const destinationPath = join(davRootPath, destination.path);\n if (method === MoveCopyAction.COPY) {\n let target = node.basename;\n // If we do not allow overwriting then find an unique name\n if (!overwrite) {\n const otherNodes = await client.getDirectoryContents(destinationPath);\n target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n suffix: copySuffix,\n ignoreFileExtension: node.type === FileType.Folder,\n });\n }\n await client.copyFile(currentPath, join(destinationPath, target));\n // If the node is copied into current directory the view needs to be updated\n if (node.dirname === destination.path) {\n const { data } = await client.stat(join(destinationPath, target), {\n details: true,\n data: davGetDefaultPropfind(),\n });\n emit('files:node:created', davResultToNode(data));\n }\n }\n else {\n // show conflict file popup if we do not allow overwriting\n if (!overwrite) {\n const otherNodes = await getContents(destination.path);\n if (hasConflict([node], otherNodes.contents)) {\n try {\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n // two empty arrays: either only old files or conflict skipped -> no action required\n if (!selected.length && !renamed.length) {\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\n }\n }\n // getting here means either no conflict, file was renamed to keep both files\n // in a conflict, or the selected file was chosen to be kept during the conflict\n try {\n await client.moveFile(currentPath, join(destinationPath, node.basename));\n }\n catch (error) {\n const parser = new DOMParser();\n const text = await error.response?.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n showError(message);\n }\n throw error;\n }\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error.response?.status === 423) {\n throw new Error(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n logger.debug(error);\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', '');\n actionFinished();\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param action The action to open the file picker for\n * @param dir The directory to start the file picker in\n * @param nodes The nodes to move/copy\n * @return The picked destination or false if cancelled by user\n */\nasync function openFilePickerForAction(action, dir = '/', nodes) {\n const { resolve, reject, promise } = Promise.withResolvers();\n const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We don't want to show the current nodes in the file picker\n return !fileIDs.includes(n.fileid);\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir)\n .setButtonFactory((selection, path) => {\n const buttons = [];\n const target = basename(path);\n const dirnames = nodes.map(node => node.dirname);\n const paths = nodes.map(node => node.path);\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIconSvg,\n disabled: selection.some((node) => (node.permissions & Permission.CREATE) === 0),\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\n return buttons;\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: FolderMoveSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.MOVE,\n });\n },\n });\n }\n return buttons;\n })\n .build();\n filePicker.pick()\n .catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n resolve(false);\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n return promise;\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = new FileAction({\n id: ACTION_COPY_MOVE,\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes, view) {\n // We can not copy or move in single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n let result;\n try {\n result = await openFilePickerForAction(action, dir, [node]);\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n if (result === false) {\n showInfo(t('files', 'Cancelled move or copy of \"{filename}\".', { filename: node.displayname }));\n return null;\n }\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const action = getActionForNodes(nodes);\n const result = await openFilePickerForAction(action, dir, nodes);\n // Handle cancellation silently\n if (result === false) {\n showInfo(nodes.length === 1\n ? t('files', 'Cancelled move or copy of \"{filename}\".', { filename: nodes[0].displayname })\n : t('files', 'Cancelled move or copy operation'));\n return nodes.map(() => null);\n }\n const promises = nodes.map(async (node) => {\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n logger.error(`Failed to ${result.action} node`, { node, error });\n return false;\n }\n });\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n // we let the front handle the error.\n return await Promise.all(promises);\n },\n order: 15,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Folder, Node, NodeStatus, davRootPath } from '@nextcloud/files';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { join } from 'path';\nimport { joinPaths } from '@nextcloud/paths';\nimport { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils';\nimport { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils';\nimport logger from '../logger.ts';\n/**\n * This function converts a list of DataTransferItems to a file tree.\n * It uses the Filesystem API if available, otherwise it falls back to the File API.\n * The File API will NOT be available if the browser is not in a secure context (e.g. HTTP).\n * ⚠️ When using this method, you need to use it as fast as possible, as the DataTransferItems\n * will be cleared after the first access to the props of one of the entries.\n *\n * @param items the list of DataTransferItems\n */\nexport const dataTransferToFileTree = async (items) => {\n // Check if the browser supports the Filesystem API\n // We need to cache the entries to prevent Blink engine bug that clears\n // the list (`data.items`) after first access props of one of the entries\n const entries = items\n .filter((item) => {\n if (item.kind !== 'file') {\n logger.debug('Skipping dropped item', { kind: item.kind, type: item.type });\n return false;\n }\n return true;\n }).map((item) => {\n // MDN recommends to try both, as it might be renamed in the future\n return item?.getAsEntry?.()\n ?? item?.webkitGetAsEntry?.()\n ?? item;\n });\n let warned = false;\n const fileTree = new Directory('root');\n // Traverse the file tree\n for (const entry of entries) {\n // Handle browser issues if Filesystem API is not available. Fallback to File API\n if (entry instanceof DataTransferItem) {\n logger.warn('Could not get FilesystemEntry of item, falling back to file');\n const file = entry.getAsFile();\n if (file === null) {\n logger.warn('Could not process DataTransferItem', { type: entry.type, kind: entry.kind });\n showError(t('files', 'One of the dropped files could not be processed'));\n continue;\n }\n // Warn the user that the browser does not support the Filesystem API\n // we therefore cannot upload directories recursively.\n if (file.type === 'httpd/unix-directory' || !file.type) {\n if (!warned) {\n logger.warn('Browser does not support Filesystem API. Directories will not be uploaded');\n showWarning(t('files', 'Your browser does not support the Filesystem API. Directories will not be uploaded'));\n warned = true;\n }\n continue;\n }\n fileTree.contents.push(file);\n continue;\n }\n // Use Filesystem API\n try {\n fileTree.contents.push(await traverseTree(entry));\n }\n catch (error) {\n // Do not throw, as we want to continue with the other files\n logger.error('Error while traversing file tree', { error });\n }\n }\n return fileTree;\n};\nexport const onDropExternalFiles = async (root, destination, contents) => {\n const uploader = getUploader();\n // Check for conflicts on root elements\n if (await hasConflict(root.contents, contents)) {\n root.contents = await resolveConflict(root.contents, destination, contents);\n }\n if (root.contents.length === 0) {\n logger.info('No files to upload', { root });\n showInfo(t('files', 'No files to upload'));\n return [];\n }\n // Let's process the files\n logger.debug(`Uploading files to ${destination.path}`, { root, contents: root.contents });\n const queue = [];\n const uploadDirectoryContents = async (directory, path) => {\n for (const file of directory.contents) {\n // This is the relative path to the resource\n // from the current uploader destination\n const relativePath = join(path, file.name);\n // If the file is a directory, we need to create it first\n // then browse its tree and upload its contents.\n if (file instanceof Directory) {\n const absolutePath = joinPaths(davRootPath, destination.path, relativePath);\n try {\n console.debug('Processing directory', { relativePath });\n await createDirectoryIfNotExists(absolutePath);\n await uploadDirectoryContents(file, relativePath);\n }\n catch (error) {\n showError(t('files', 'Unable to create the directory {directory}', { directory: file.name }));\n logger.error('', { error, absolutePath, directory: file });\n }\n continue;\n }\n // If we've reached a file, we can upload it\n logger.debug('Uploading file to ' + join(destination.path, relativePath), { file });\n // Overriding the root to avoid changing the current uploader context\n queue.push(uploader.upload(relativePath, file, destination.source));\n }\n };\n // Pause the uploader to prevent it from starting\n // while we compute the queue\n uploader.pause();\n // Upload the files. Using '/' as the starting point\n // as we already adjusted the uploader destination\n await uploadDirectoryContents(root, '/');\n uploader.start();\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while uploading files', { errors });\n showError(t('files', 'Some files could not be uploaded'));\n return [];\n }\n logger.debug('Files uploaded successfully');\n showSuccess(t('files', 'Files uploaded successfully'));\n return Promise.all(queue);\n};\nexport const onDropInternalFiles = async (nodes, destination, contents, isCopy = false) => {\n const queue = [];\n // Check for conflicts on root elements\n if (await hasConflict(nodes, contents)) {\n nodes = await resolveConflict(nodes, destination, contents);\n }\n if (nodes.length === 0) {\n logger.info('No files to process', { nodes });\n showInfo(t('files', 'No files to process'));\n return;\n }\n for (const node of nodes) {\n Vue.set(node, 'status', NodeStatus.LOADING);\n queue.push(handleCopyMoveNodeTo(node, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE, true));\n }\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n nodes.forEach(node => Vue.set(node, 'status', undefined));\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while copying or moving files', { errors });\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n return;\n }\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n * @param selection array of node sources\n */\n set(selection = []) {\n Vue.set(this, 'dragging', selection);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'dragging', []);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{staticClass:\"files-list__breadcrumbs\",class:{ 'files-list__breadcrumbs--with-progress': _vm.wrapUploadProgressBar },attrs:{\"data-cy-files-content-breadcrumbs\":\"\",\"aria-label\":_vm.t('files', 'Current directory path')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"dir\":\"auto\",\"to\":section.to,\"force-icon-text\":index === 0 && _vm.fileListWidth >= 486,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)},\"dragover\":function($event){return _vm.onDragOver($event, section.dir)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"size\":20,\"svg\":_vm.viewIcon}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&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!./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=7b525302&scoped=true\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=7b525302&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 \"7b525302\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragover),expression:\"dragover\"}],staticClass:\"files-list__drag-drop-notice\",attrs:{\"data-cy-files-drag-drop-area\":\"\"},on:{\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"files-list__drag-drop-notice-wrapper\"},[(_vm.canUpload && !_vm.isQuotaExceeded)?[_c('TrayArrowDownIcon',{attrs:{\"size\":48}}),_vm._v(\" \"),_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Drag and drop files here to upload'))+\"\\n\\t\\t\\t\")])]:[_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cantUploadLabel)+\"\\n\\t\\t\\t\")])]],2)])\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 tray-arrow-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=\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TrayArrowDownIcon\",\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!./TrayArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\nimport script from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowDown.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 tray-arrow-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\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\"}},[(_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/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"","\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!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&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!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropNotice.vue?vue&type=template&id=6efab70c&scoped=true\"\nimport script from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&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 \"6efab70c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.enabled),expression:\"enabled\"}],class:`files-list__header-${_vm.header.id}`},[_c('span',{ref:\"mount\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=173a4473\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\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,_setup=_vm._self._setupProxy;return _c('VirtualList',{ref:\"table\",attrs:{\"data-component\":_vm.userConfig.grid_view ? _vm.FileEntryGrid : _vm.FileEntry,\"data-key\":'source',\"data-sources\":_vm.nodes,\"grid-mode\":_vm.userConfig.grid_view,\"extra-props\":{\n\t\tisMimeAvailable: _vm.isMimeAvailable,\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilters')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.n('files', '{count} selected', '{count} selected', _vm.selectedNodes.length, { count: _vm.selectedNodes.length }))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.headers),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})})},proxy:true},{key:\"header\",fn:function(){return [_c('FilesListTableHeader',{ref:\"thead\",attrs:{\"files-list-width\":_vm.fileListWidth,\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"files-list-width\":_vm.fileListWidth,\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}],null,true)})\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 */\nimport { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","import axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog';\nimport { basename, dirname, extname } from 'path';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nimport Vue, { defineAsyncComponent, ref } from 'vue';\nimport { useUserConfigStore } from './userconfig';\nimport { fetchNode } from '../services/WebdavClient';\nexport const useRenamingStore = defineStore('renaming', () => {\n /**\n * The currently renamed node\n */\n const renamingNode = ref();\n /**\n * The new name of the currently renamed node\n */\n const newNodeName = ref('');\n /**\n * Internal flag to only allow calling `rename` once.\n */\n const isRenaming = ref(false);\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n *\n * @return true if success, false if skipped (e.g. new and old name are the same)\n * @throws Error if renaming fails, details are set in the error message\n */\n async function rename() {\n if (renamingNode.value === undefined) {\n throw new Error('No node is currently being renamed');\n }\n // Only rename once so we use this as some kind of mutex\n if (isRenaming.value) {\n return false;\n }\n isRenaming.value = true;\n let node = renamingNode.value;\n Vue.set(node, 'status', NodeStatus.LOADING);\n const userConfig = useUserConfigStore();\n let newName = newNodeName.value.trim();\n const oldName = node.basename;\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n // Check for extension change for files\n if (node.type === FileType.File\n && oldExtension !== newExtension\n && userConfig.userConfig.show_dialog_file_extension\n && !(await showFileExtensionDialog(oldExtension, newExtension))) {\n // user selected to use the old extension\n newName = basename(newName, newExtension) + oldExtension;\n }\n const oldEncodedSource = node.encodedSource;\n try {\n if (oldName === newName) {\n return false;\n }\n // rename the node\n node.rename(newName);\n logger.debug('Moving file to', { destination: node.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: node.encodedSource,\n Overwrite: 'F',\n },\n });\n // Update mime type if extension changed\n // as other related informations might have changed\n // on the backend but it is really hard to know on the front\n if (oldExtension !== newExtension) {\n node = await fetchNode(node.path);\n }\n // Success 🎉\n emit('files:node:updated', node);\n emit('files:node:renamed', node);\n emit('files:node:moved', {\n node,\n oldSource: `${dirname(node.source)}/${oldName}`,\n });\n // Reset the state not changed\n if (renamingNode.value === node) {\n $reset();\n }\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n node.rename(oldName);\n if (isAxiosError(error)) {\n // TODO: 409 means current folder does not exist, redirect ?\n if (error?.response?.status === 404) {\n throw new Error(t('files', 'Could not rename \"{oldName}\", it does not exist any more', { oldName }));\n }\n else if (error?.response?.status === 412) {\n throw new Error(t('files', 'The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.', {\n newName,\n dir: basename(renamingNode.value.dirname),\n }));\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }));\n }\n finally {\n Vue.set(node, 'status', undefined);\n isRenaming.value = false;\n }\n }\n /**\n * Reset the store state\n */\n function $reset() {\n newNodeName.value = '';\n renamingNode.value = undefined;\n }\n // Make sure we only register the listeners once\n subscribe('files:node:rename', (node) => {\n renamingNode.value = node;\n newNodeName.value = node.basename;\n });\n return {\n $reset,\n newNodeName,\n rename,\n renamingNode,\n };\n});\n/**\n * Show a dialog asking user for confirmation about changing the file extension.\n *\n * @param oldExtension the old file name extension\n * @param newExtension the new file name extension\n */\nasync function showFileExtensionDialog(oldExtension, newExtension) {\n const { promise, resolve } = Promise.withResolvers();\n spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileExtension.vue')), { oldExtension, newExtension }, (useNewExtension) => resolve(Boolean(useNewExtension)));\n return await promise;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=7b30c709\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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 \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n data() {\n return {\n openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-actions\",attrs:{\"data-cy-files-list-row-actions\":\"\"}},[_vm._l((_vm.enabledRenderActions),function(action){return _c('CustomElementRender',{key:action.id,staticClass:\"files-list__row-action--inline\",class:'files-list__row-action-' + action.id,attrs:{\"current-view\":_vm.currentView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"type\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"close\":_vm.onMenuClose,\"closed\":_vm.onMenuClosed}},[_vm._l((_vm.enabledMenuActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action\",class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.([_vm.source], _vm.currentView),\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-action--submenu\",class:`files-list__row-action-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-row-action\":action.id,\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"","\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!./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&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!./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&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!./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=7f0265e5&scoped=true\"\nimport script from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryActions.vue?vue&type=style&index=0&id=7f0265e5&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=7f0265e5&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 \"7f0265e5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[(_vm.isLoading)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.loadingLabel}}):_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.ariaLabel,\"checked\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:checked\":_vm.onSelectionChange}})],1)\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 */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n * @param {...any} args\n */\nexport const useKeyboardStore = function (...args) {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n },\n });\n const keyboardStore = store(...args);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","import { render, staticRenderFns } from \"./FileEntryCheckbox.vue?vue&type=template&id=c405f2b8\"\nimport script from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\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","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-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=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\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!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\nimport script from \"./FileMultiple.vue?vue&type=script&lang=js\"\nexport * from \"./FileMultiple.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-multiple-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\":\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list-drag-image\"},[_c('span',{staticClass:\"files-list-drag-image__icon\"},[_c('span',{ref:\"previewImg\"}),_vm._v(\" \"),(_vm.isSingleFolder)?_c('FolderIcon'):_c('FileMultipleIcon')],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list-drag-image__name\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"","\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!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=01562099\"\nimport script from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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","import DragAndDropPreview from '../components/DragAndDropPreview.vue';\nimport Vue from 'vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\nexport const getDragAndDropPreview = async (nodes) => {\n return new Promise((resolve) => {\n if (!preview) {\n preview = new Preview().$mount();\n document.body.appendChild(preview.$el);\n }\n preview.update(nodes);\n preview.$on('loaded', () => {\n resolve(preview.$el);\n preview.$off('loaded');\n });\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { extname } from 'path';\nimport { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { showError } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { vOnClickOutside } from '@vueuse/components';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nimport logger from '../logger.ts';\nVue.directive('onClickOutside', vOnClickOutside);\nconst actions = getFileActions();\nexport default defineComponent({\n props: {\n source: {\n type: [Folder, NcFile, Node],\n required: true,\n },\n nodes: {\n type: Array,\n required: true,\n },\n filesListWidth: {\n type: Number,\n default: 0,\n },\n isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\n dragover: false,\n gridMode: false,\n };\n },\n computed: {\n fileid() {\n return this.source.fileid ?? 0;\n },\n uniqueId() {\n return hashCode(this.source.source);\n },\n isLoading() {\n return this.source.status === NodeStatus.LOADING;\n },\n /**\n * The display name of the current node\n * Either the nodes filename or a custom display name (e.g. for shares)\n */\n displayName() {\n // basename fallback needed for apps using old `@nextcloud/files` prior 3.6.0\n return this.source.displayname || this.source.basename;\n },\n /**\n * The display name without extension\n */\n basename() {\n if (this.extension === '') {\n return this.displayName;\n }\n return this.displayName.slice(0, 0 - this.extension.length);\n },\n /**\n * The extension of the file\n */\n extension() {\n if (this.source.type === FileType.Folder) {\n return '';\n }\n return extname(this.displayName);\n },\n draggingFiles() {\n return this.draggingStore.dragging;\n },\n selectedFiles() {\n return this.selectionStore.selected;\n },\n isSelected() {\n return this.selectedFiles.includes(this.source.source);\n },\n isRenaming() {\n return this.renamingStore.renamingNode === this.source;\n },\n isRenamingSmallScreen() {\n return this.isRenaming && this.filesListWidth < 512;\n },\n isActive() {\n return String(this.fileid) === String(this.currentFileId);\n },\n /**\n * Check if the source is in a failed state after an API request\n */\n isFailedSource() {\n return this.source.status === NodeStatus.FAILED;\n },\n canDrag() {\n if (this.isRenaming) {\n return false;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return false;\n }\n const canDrag = (node) => {\n return (node?.permissions & Permission.UPDATE) !== 0;\n };\n // If we're dragging a selection, we need to check all files\n if (this.selectedFiles.length > 0) {\n const nodes = this.selectedFiles.map(source => this.filesStore.getNode(source));\n return nodes.every(canDrag);\n }\n return canDrag(this.source);\n },\n canDrop() {\n if (this.source.type !== FileType.Folder) {\n return false;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return false;\n }\n // If the current folder is also being dragged, we can't drop it on itself\n if (this.draggingFiles.includes(this.source.source)) {\n return false;\n }\n return (this.source.permissions & Permission.CREATE) !== 0;\n },\n openedMenu: {\n get() {\n return this.actionsMenuStore.opened === this.uniqueId.toString();\n },\n set(opened) {\n // If the menu is opened on another file entry, we ignore closed events\n if (opened === false && this.actionsMenuStore.opened !== this.uniqueId.toString()) {\n return;\n }\n // If opened, we specify the current file id\n // else we set it to null to close the menu\n this.actionsMenuStore.opened = opened\n ? this.uniqueId.toString()\n : null;\n },\n },\n mtime() {\n // If the mtime is not a valid date, return it as is\n if (this.source.mtime && !isNaN(this.source.mtime.getDate())) {\n return this.source.mtime;\n }\n if (this.source.crtime && !isNaN(this.source.crtime.getDate())) {\n return this.source.crtime;\n }\n return null;\n },\n mtimeOpacity() {\n if (!this.mtime) {\n return {};\n }\n // The time when we start reducing the opacity\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n // everything older than the maxOpacityTime will have the same value\n const timeDiff = Date.now() - this.mtime.getTime();\n if (timeDiff < 0) {\n // this means we have an invalid mtime which is in the future!\n return {};\n }\n // inversed time difference from 0 to maxOpacityTime (which would mean today)\n const opacityTime = Math.max(0, maxOpacityTime - timeDiff);\n // 100 = today, 0 = 31 days ago or older\n const percentage = Math.round(opacityTime * 100 / maxOpacityTime);\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${percentage}%, var(--color-text-maxcontrast))`,\n };\n },\n /**\n * Sorted actions that are enabled for this node\n */\n enabledFileActions() {\n if (this.source.status === NodeStatus.FAILED) {\n return [];\n }\n return actions\n .filter(action => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled([this.source], this.currentView);\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n },\n defaultFileAction() {\n return this.enabledFileActions.find((action) => action.default !== undefined);\n },\n },\n watch: {\n /**\n * When the source changes, reset the preview\n * and fetch the new one.\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n // Checking if the menu is really closed and not\n // just a change in the open state to another file entry.\n if (this.actionsMenuStore.opened === null) {\n // Reset any right menu position potentially set\n logger.debug('All actions menu closed, resetting right menu position...');\n const root = this.$el?.closest('main.app-content');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\n // Reset the preview state\n this.$refs?.preview?.reset?.();\n // Close menu\n this.openedMenu = false;\n },\n // Open the actions menu on right click\n onRightClick(event) {\n // If already opened, fallback to default browser\n if (this.openedMenu) {\n return;\n }\n // Ignore right click if the node is not available\n if (this.isFailedSource) {\n return;\n }\n // The grid mode is compact enough to not care about\n // the actions menu mouse position\n if (!this.gridMode) {\n // Actions menu is contained within the app content\n const root = this.$el?.closest('main.app-content');\n const contentRect = root.getBoundingClientRect();\n // Using Math.min/max to prevent the menu from going out of the AppContent\n // 200 = max width of the menu\n logger.debug('Setting actions menu position...');\n root.style.setProperty('--mouse-pos-x', Math.max(0, event.clientX - contentRect.left - 200) + 'px');\n root.style.setProperty('--mouse-pos-y', Math.max(0, event.clientY - contentRect.top) + 'px');\n }\n else {\n // Reset any right menu position potentially set\n const root = this.$el?.closest('main.app-content');\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n // If the clicked row is in the selection, open global menu\n const isMoreThanOneSelected = this.selectedFiles.length > 1;\n this.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId.toString();\n // Prevent any browser defaults\n event.preventDefault();\n event.stopPropagation();\n },\n execDefaultAction(event) {\n // Ignore click if we are renaming\n if (this.isRenaming) {\n return;\n }\n // Ignore right click (button & 2) and any auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\n return;\n }\n // if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab\n // also if there is no default action use this as a fallback\n const metaKeyPressed = event.ctrlKey || event.metaKey || event.button === 1;\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (isPublicShare() && !isDownloadable(this.source)) {\n return;\n }\n const url = isPublicShare()\n ? this.source.encodedSource\n : generateUrl('/f/{fileId}', { fileId: this.fileid });\n event.preventDefault();\n event.stopPropagation();\n // Open the file in a new tab if the meta key or the middle mouse button is clicked\n window.open(url, metaKeyPressed ? '_blank' : '_self');\n return;\n }\n // every special case handled so just execute the default action\n event.preventDefault();\n event.stopPropagation();\n // Execute the first default action if any\n this.defaultFileAction.exec(this.source, this.currentView, this.currentDir);\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.([this.source], this.currentView)) {\n sidebarAction.exec(this.source, this.currentView, this.currentDir);\n }\n },\n onDragOver(event) {\n this.dragover = this.canDrop;\n if (!this.canDrop) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n // Handle copy/move drag and drop\n if (event.ctrlKey) {\n event.dataTransfer.dropEffect = 'copy';\n }\n else {\n event.dataTransfer.dropEffect = 'move';\n }\n },\n onDragLeave(event) {\n // Counter bubbling, make sure we're ending the drag\n // only when we're leaving the current element\n const currentTarget = event.currentTarget;\n if (currentTarget?.contains(event.relatedTarget)) {\n return;\n }\n this.dragover = false;\n },\n async onDragStart(event) {\n event.stopPropagation();\n if (!this.canDrag || !this.fileid) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n logger.debug('Drag started', { event });\n // Make sure that we're not dragging a file like the preview\n event.dataTransfer?.clearData?.();\n // Reset any renaming\n this.renamingStore.$reset();\n // Dragging set of files, if we're dragging a file\n // that is already selected, we use the entire selection\n if (this.selectedFiles.includes(this.source.source)) {\n this.draggingStore.set(this.selectedFiles);\n }\n else {\n this.draggingStore.set([this.source.source]);\n }\n const nodes = this.draggingStore.dragging\n .map(source => this.filesStore.getNode(source));\n const image = await getDragAndDropPreview(nodes);\n event.dataTransfer?.setDragImage(image, -10, -10);\n },\n onDragEnd() {\n this.draggingStore.reset();\n this.dragover = false;\n logger.debug('Drag ended');\n },\n async onDrop(event) {\n // skip if native drop like text drag and drop from files names\n if (!this.draggingFiles && !event.dataTransfer?.items?.length) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n // Caching the selection\n const selection = this.draggingFiles;\n const items = [...event.dataTransfer?.items || []];\n // We need to process the dataTransfer ASAP before the\n // browser clears it. This is why we cache the items too.\n const fileTree = await dataTransferToFileTree(items);\n // We might not have the target directory fetched yet\n const contents = await this.currentView?.getContents(this.source.path);\n const folder = contents?.folder;\n if (!folder) {\n showError(this.t('files', 'Target folder does not exist any more'));\n return;\n }\n // If another button is pressed, cancel it. This\n // allows cancelling the drag with the right click.\n if (!this.canDrop || event.button) {\n return;\n }\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder, selection, fileTree });\n // Check whether we're uploading files\n if (selection.length === 0 && fileTree.contents.length > 0) {\n await onDropExternalFiles(fileTree, folder, contents.contents);\n return;\n }\n // Else we're moving/copying files\n const nodes = selection.map(source => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, folder, contents.contents, isCopy);\n // Reset selection after we dropped the files\n // if the dropped files are within the selection\n if (selection.some(source => this.selectedFiles.includes(source))) {\n logger.debug('Dropped selection, resetting select store...');\n this.selectionStore.reset();\n }\n },\n t,\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Simple non-secure hashing function similar to Java's `hashCode`\n * @param str The string to hash\n * @return {number} a non secure hash of the string\n */\nexport const hashCode = function (str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return (hash >>> 0);\n};\n","import { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n * @param node The node to check\n * @return True if downloadable, false otherwise\n */\nexport function isDownloadable(node) {\n if ((node.permissions & Permission.READ) === 0) {\n return false;\n }\n // check hide-download property of shares\n if (node.attributes['hide-download'] === true\n || node.attributes['hide-download'] === 'true') {\n return false;\n }\n // If the mount type is a share, ensure it got download permissions.\n if (node.attributes['share-attributes']) {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] || '[]');\n const downloadAttribute = shareAttributes.find(({ scope, key }) => scope === 'permissions' && key === 'download');\n if (downloadAttribute !== undefined) {\n return downloadAttribute.value === true;\n }\n }\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRenaming)?_c('form',{directives:[{name:\"on-click-outside\",rawName:\"v-on-click-outside\",value:(_vm.onRename),expression:\"onRename\"}],ref:\"renameForm\",staticClass:\"files-list__row-rename\",attrs:{\"aria-label\":_vm.t('files', 'Rename file')},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onRename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"renameInput\",attrs:{\"label\":_vm.renameLabel,\"autofocus\":true,\"minlength\":1,\"required\":true,\"value\":_vm.newName,\"enterkeyhint\":\"done\"},on:{\"update:value\":function($event){_vm.newName=$event},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.stopRenaming.apply(null, arguments)}}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\n/**\n * Get the validity of a filename (empty if valid).\n * This can be used for `setCustomValidity` on input elements\n * @param name The filename\n * @param escape Escape the matched string in the error (only set when used in HTML)\n */\nexport function getFilenameValidity(name, escape = false) {\n if (name.trim() === '') {\n return t('files', 'Filename must not be empty.');\n }\n try {\n validateFilename(name);\n return '';\n }\n catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('files', '\"{char}\" is not allowed inside a filename.', { char: error.segment }, undefined, { escape });\n case InvalidFilenameErrorReason.ReservedName:\n return t('files', '\"{segment}\" is a reserved name and not allowed for filenames.', { segment: error.segment }, undefined, { escape: false });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('files', '\"{extension}\" is not an allowed filetype.', { extension: error.segment }, undefined, { escape: false });\n }\n return t('files', 'Filenames must not end with \"{extension}\".', { extension: error.segment }, undefined, { escape: false });\n default:\n return t('files', 'Invalid filename.');\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"","\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!./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&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!./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryName.vue?vue&type=template&id=08f77d70&scoped=true\"\nimport script from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryName.vue?vue&type=style&index=0&id=08f77d70&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 \"08f77d70\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?[(_vm.dragover)?_vm._m(0):[_vm._m(1),_vm._v(\" \"),(_vm.folderOverlay)?_c(_vm.folderOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay\"}):_vm._e()]]:(_vm.previewUrl)?_c('span',{staticClass:\"files-list__row-icon-preview-container\"},[(_vm.hasBlurhash && (_vm.backgroundFailed === true || !_vm.backgroundLoaded))?_c('canvas',{ref:\"canvas\",staticClass:\"files-list__row-icon-blurhash\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.backgroundFailed !== true)?_c('img',{key:_vm.source.fileid,ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",class:{'files-list__row-icon-preview--loaded': _vm.backgroundFailed === false},attrs:{\"alt\":\"\",\"loading\":\"lazy\",\"src\":_vm.previewUrl},on:{\"error\":_vm.onBackgroundError,\"load\":_vm.onBackgroundLoad}}):_vm._e()]):_vm._m(2),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\"},[_vm._m(3)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay files-list__row-icon-overlay--file\"}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderOpenIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FileIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FavoriteIcon')\n}]\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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderOpenIcon\",\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!./FolderOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\nimport script from \"./FolderOpen.vue?vue&type=script&lang=js\"\nexport * from \"./FolderOpen.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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\"}},[(_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!./Key.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.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 key-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=\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"KeyIcon\",\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 \"./Key.vue?vue&type=template&id=499b3412\"\nimport script from \"./Key.vue?vue&type=script&lang=js\"\nexport * from \"./Key.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 key-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\":\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\"}},[(_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!./Network.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"NetworkIcon\",\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 \"./Network.vue?vue&type=template&id=7bf2ec80\"\nimport script from \"./Network.vue?vue&type=script&lang=js\"\nexport * from \"./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\"}},[(_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!./Tag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.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 tag-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=\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TagIcon\",\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 \"./Tag.vue?vue&type=template&id=356230e0\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.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 tag-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\":\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\"}},[(_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!./PlayCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.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 play-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=\"M10,16.5V7.5L16,12M12,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: \"PlayCircleIcon\",\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 \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\nimport script from \"./PlayCircle.vue?vue&type=script&lang=js\"\nexport * from \"./PlayCircle.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 play-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\":\"M10,16.5V7.5L16,12M12,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 \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.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!./CollectivesIcon.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<span :aria-hidden=\"!title\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"material-design-icon collectives-icon\"\n\t\trole=\"img\"\n\t\tv-bind=\"$attrs\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg :fill=\"fillColor\"\n\t\t\tclass=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 16 16\">\n\t\t\t<path d=\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\" />\n\t\t\t<path d=\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\" />\n\t\t\t<path d=\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\" />\n\t\t\t<path d=\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\" />\n\t\t\t<path d=\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\" />\n\t\t\t<path d=\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script>\nexport default {\n\tname: 'CollectivesIcon',\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfillColor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'currentColor',\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 24,\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=43528c7c\"\nimport script from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CollectivesIcon.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('span',_vm._b({staticClass:\"material-design-icon collectives-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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 16 16\"}},[_c('path',{attrs:{\"d\":\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"favorite-marker-icon\",attrs:{\"name\":_vm.t('files', 'Favorite'),\"svg\":_vm.StarSvg}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&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!./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FavoriteIcon.vue?vue&type=template&id=0b2a4155&scoped=true\"\nimport script from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FavoriteIcon.vue?vue&type=style&index=0&id=0b2a4155&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 \"0b2a4155\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=24c5eabf\"\nimport script from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._g({staticClass:\"files-list__row\",class:{\n\t\t'files-list__row--dragover': _vm.dragover,\n\t\t'files-list__row--loading': _vm.isLoading,\n\t\t'files-list__row--active': _vm.isActive,\n\t},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag}},_vm.rowListeners),[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"source\":_vm.source,\"dragover\":_vm.dragover},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),_c('FileEntryActions',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRenamingSmallScreen),expression:\"!isRenamingSmallScreen\"}],ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__row-mime\",attrs:{\"title\":_vm.mime,\"data-cy-files-list-row-mime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.mime))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:(_vm.sizeOpacity),attrs:{\"data-cy-files-list-row-size\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=b5701628\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row\",class:{'files-list__row--active': _vm.isActive, 'files-list__row--dragover': _vm.dragover, 'files-list__row--loading': _vm.isLoading},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag},on:{\"contextmenu\":_vm.onRightClick,\"dragover\":_vm.onDragOver,\"dragleave\":_vm.onDragLeave,\"dragstart\":_vm.onDragStart,\"dragend\":_vm.onDragEnd,\"drop\":_vm.onDrop}},[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"dragover\":_vm.dragover,\"grid-mode\":true,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"grid-mode\":true,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"grid-mode\":true,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=f46658f4\"\nimport script from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\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,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"file-list-filters\"},[_c('div',{staticClass:\"file-list-filters__filter\",attrs:{\"data-cy-files-filters\":\"\"}},_vm._l((_setup.visualFilters),function(filter){return _c('span',{key:filter.id,ref:\"filterElements\",refInFor:true})}),0),_vm._v(\" \"),(_setup.activeChips.length > 0)?_c('ul',{staticClass:\"file-list-filters__active\",attrs:{\"aria-label\":_setup.t('files', 'Active filters')}},_vm._l((_setup.activeChips),function(chip,index){return _c('li',{key:index},[_c(_setup.NcChip,{attrs:{\"aria-label-close\":_setup.t('files', 'Remove filter'),\"icon-svg\":chip.icon,\"text\":chip.text},on:{\"close\":chip.onclick},scopedSlots:_vm._u([(chip.user)?{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"","\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!./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&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!./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=3d6bff7e&scoped=true\"\nimport script from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilters.vue?vue&type=style&index=0&id=3d6bff7e&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 \"3d6bff7e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mime\"}):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&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!./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableFooter.vue?vue&type=template&id=e916ded0&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=e916ded0&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 \"e916ded0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row-head\"},[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[_c('NcCheckboxRadioSwitch',_vm._b({attrs:{\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",attrs:{\"aria-sort\":_vm.ariaSortForMode('basename')}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mime\",class:{ 'files-list__column--sortable': _vm.isMimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'File type'),\"mode\":\"mime\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{ 'files-list__column--sortable': _vm.isSizeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('size')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mtime\",class:{ 'files-list__column--sortable': _vm.isMtimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mtime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Modified'),\"mode\":\"mtime\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column),attrs:{\"aria-sort\":_vm.ariaSortForMode(column.id)}},[(!!column.sort)?_c('FilesListTableHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\")])],1)})],2)\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 */\nimport Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nimport { useNavigation } from '../composables/useNavigation';\nexport default Vue.extend({\n setup() {\n const { currentView } = useNavigation();\n return {\n currentView,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection !== 'desc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{class:['files-list__column-sort-button', {\n\t\t'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode,\n\t\t'files-list__column-sort-button--size': _vm.sortingMode === 'size',\n\t}],attrs:{\"alignment\":_vm.mode === 'size' ? 'end' : 'start-reverse',\"type\":\"tertiary\",\"title\":_vm.name},on:{\"click\":function($event){return _vm.toggleSortBy(_vm.mode)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{staticClass:\"files-list__column-sort-button-icon\"}):_c('MenuDown',{staticClass:\"files-list__column-sort-button-icon\"})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"files-list__column-sort-button-text\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderButton.vue?vue&type=template&id=c3dbd7e0&scoped=true\"\nimport script from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=c3dbd7e0&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 \"c3dbd7e0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"","\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!./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&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!./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeader.vue?vue&type=template&id=06480c18&scoped=true\"\nimport script from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeader.vue?vue&type=style&index=0&id=06480c18&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 \"06480c18\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list__column files-list__row-actions-batch\",attrs:{\"data-cy-files-list-selection-actions\":\"\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"container\":\"#app-content-vue\",\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"","\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!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&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!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderActions.vue?vue&type=template&id=c463105a&scoped=true\"\nimport script from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=c463105a&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 \"c463105a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",staticClass:\"files-list__filters\"},[_vm._t(\"filters\")],2),_vm._v(\" \"),(!!_vm.$scopedSlots['header-overlay'])?_c('div',{staticClass:\"files-list__thead-overlay\"},[_vm._t(\"header-overlay\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{ 'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'] }},[(_vm.caption)?_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.caption)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"files-list__thead\",attrs:{\"data-cy-files-list-thead\":\"\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"files-list__tbody\",style:(_vm.tbodyStyle),attrs:{\"data-cy-files-list-tbody\":\"\"}},_vm._l((_vm.renderedItems),function({key, item},i){return _c(_vm.dataComponent,_vm._b({key:key,tag:\"component\",attrs:{\"source\":item,\"index\":i}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=fed5a918\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"","\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!./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&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!./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&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!./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=1affbcbc&scoped=true\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=1affbcbc&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=1affbcbc&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 \"1affbcbc\",\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 */\nimport { t } from '@nextcloud/l10n';\n/**\n * Whether error is a WebDAVClientError\n * @param error - Any exception\n * @return {boolean} - Whether error is a WebDAVClientError\n */\nfunction isWebDAVClientError(error) {\n return error instanceof Error && 'status' in error && 'response' in error;\n}\n/**\n * Get a localized error message from webdav request\n * @param error - An exception from webdav request\n * @return {string} Localized error message for end user\n */\nexport function humanizeWebDAVError(error) {\n if (error instanceof Error) {\n if (isWebDAVClientError(error)) {\n const status = error.status || error.response?.status || 0;\n if ([400, 404, 405].includes(status)) {\n return t('files', 'Folder not found');\n }\n else if (status === 403) {\n return t('files', 'This operation is forbidden');\n }\n else if (status === 500) {\n return t('files', 'This directory is unavailable, please check the logs or contact the administrator');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"","\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!./FilesList.vue?vue&type=style&index=0&id=0ca874fa&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!./FilesList.vue?vue&type=style&index=0&id=0ca874fa&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=0ca874fa&scoped=true\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=0ca874fa&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 \"0ca874fa\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=090ef702\"\nimport script from \"./FilesApp.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&lang=ts\"\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","import { generateUrl } from '@nextcloud/router';\nimport { relative } from 'path';\nimport queryString from 'query-string';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport Vue from 'vue';\nimport { useFilesStore } from '../store/files';\nimport { useNavigation } from '../composables/useNavigation';\nimport { usePathsStore } from '../store/paths';\nimport logger from '../logger';\nVue.use(Router);\n// Prevent router from throwing errors when we're already on the page we're trying to go to\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = (function (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated-navigation error but forward real exceptions\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)) {\n logger.debug('Ignoring duplicated navigation from vue-router', { error });\n }\n else {\n throw error;\n }\n}\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl('/apps/files'),\n linkActiveClass: 'active',\n routes: [\n {\n path: '/',\n // Pretending we're using the default view\n redirect: { name: 'filelist', params: { view: 'files' } },\n },\n {\n path: '/:view/:fileid(\\\\d+)?',\n name: 'filelist',\n props: true,\n },\n ],\n // Custom stringifyQuery to prevent encoding of slashes in the url\n stringifyQuery(query) {\n const result = queryString.stringify(query).replace(/%2F/gmi, '/');\n return result ? ('?' + result) : '';\n },\n});\n// If navigating back from a folder to a parent folder,\n// we need to keep the current dir fileid so it's highlighted\n// and scrolled into view.\nrouter.beforeEach((to, from, next) => {\n if (to.params?.parentIntercept) {\n delete to.params.parentIntercept;\n next();\n return;\n }\n const fromDir = (from.query?.dir || '/');\n const toDir = (to.query?.dir || '/');\n // We are going back to a parent directory\n if (relative(fromDir, toDir) === '..') {\n const { currentView } = useNavigation();\n const { getNode } = useFilesStore();\n const { getPath } = usePathsStore();\n if (!currentView.value?.id) {\n logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir });\n return next();\n }\n // Get the previous parent's file id\n const fromSource = getPath(currentView.value?.id, fromDir);\n if (!fromSource) {\n logger.error('No source found for the parent directory', { fromDir, toDir });\n return next();\n }\n const fileId = getNode(fromSource)?.fileid;\n if (!fileId) {\n logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource });\n return next();\n }\n logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId });\n next({\n name: 'filelist',\n query: to.query,\n params: {\n ...to.params,\n fileid: String(fileId),\n // Prevents the beforeEach from being called again\n parentIntercept: 'true',\n },\n // Replace the current history entry\n replace: true,\n });\n }\n // else, we just continue\n next();\n});\nexport default router;\n","export default class RouterService {\n // typescript compiles this to `#router` to make it private even in JS,\n // but in TS it needs to be called without the visibility specifier\n router;\n constructor(router) {\n this.router = router;\n }\n get name() {\n return this.router.currentRoute.name;\n }\n get query() {\n return this.router.currentRoute.query || {};\n }\n get params() {\n return this.router.currentRoute.params || {};\n }\n /**\n * This is a protected getter only for internal use\n * @private\n */\n get _router() {\n return this.router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this.router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this.router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","import { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { getPinia } from './store/index.ts';\nimport { registerHotkeys } from './services/HotKeysService.ts';\nimport FilesApp from './FilesApp.vue';\nimport router from './router/router';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n__webpack_nonce__ = getCSPNonce();\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nif (!window.OCP.Files.Router) {\n const Router = new RouterService(router);\n Object.assign(window.OCP.Files, { Router });\n}\n// Init Pinia store\nVue.use(PiniaVuePlugin);\n// Init HotKeys AFTER pinia is set up\nregisterHotkeys();\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\nconst FilesAppVue = Vue.extend(FilesApp);\nnew FilesAppVue({\n router: window.OCP.Files.Router._router,\n pinia: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey';\nimport { dirname } from 'path';\nimport { action as deleteAction } from '../actions/deleteAction.ts';\nimport { action as favoriteAction } from '../actions/favoriteAction.ts';\nimport { action as renameAction } from '../actions/renameAction.ts';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport logger from '../logger.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport const registerHotkeys = function () {\n // d opens the sidebar\n useHotKey('d', () => executeAction(sidebarAction), {\n stop: true,\n prevent: true,\n });\n // F2 renames the file\n useHotKey('F2', () => executeAction(renameAction), {\n stop: true,\n prevent: true,\n });\n // s toggle favorite\n useHotKey('s', () => executeAction(favoriteAction), {\n stop: true,\n prevent: true,\n });\n // Delete deletes the file\n useHotKey('Delete', () => executeAction(deleteAction), {\n stop: true,\n prevent: true,\n });\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n};\nconst goToParentDir = function () {\n const params = window.OCP.Files.Router?.params || {};\n const query = window.OCP.Files.Router?.query || {};\n const currentDir = (query?.dir || '/');\n const parentDir = dirname(currentDir);\n logger.debug('Navigating to parent directory', { parentDir });\n window.OCP.Files.Router.goToRoute(null, { ...params }, { ...query, dir: parentDir });\n};\nconst toggleGridView = function () {\n const userConfigStore = useUserConfigStore();\n const value = userConfigStore?.userConfig?.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\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 Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\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 Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\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, `tr[data-v-e916ded0]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-e916ded0]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__row-action[data-v-7f0265e5]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-7f0265e5]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-7f0265e5] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA\",\"sourcesContent\":[\"\\n.files-list__row-action {\\n\\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\\n\\n\\t// inline icons can have clickable area size so they still fit into the row\\n\\t&.files-list__row-action--inline {\\n\\t\\t--max-icon-size: var(--default-clickable-area);\\n\\t}\\n\\n\\t// Some icons exceed the default size so we need to enforce a max width and height\\n\\t.files-list__row-action-icon :deep(svg) {\\n\\t\\tmax-height: var(--max-icon-size) !important;\\n\\t\\tmax-width: var(--max-icon-size) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropPreview.vue\"],\"names\":[],\"mappings\":\"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 32px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\tpadding: 6px 12px;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: 12px;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t.files-list__row-icon + .files-list__row-icon {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\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, `button.files-list__row-name-link[data-v-08f77d70]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-08f77d70]:active{background-color:unset !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryName.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-list-filters[data-v-3d6bff7e]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-3d6bff7e]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-3d6bff7e]{flex:0 1 fit-content}.file-list-filters__active[data-v-3d6bff7e]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilters.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA\",\"sourcesContent\":[\"\\n.file-list-filters {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: var(--default-grid-baseline);\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\n\\t&__filter {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\tjustify-content: start;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\n\\t\\t> * {\\n\\t\\t\\tflex: 0 1 fit-content;\\n\\t\\t}\\n\\t}\\n\\n\\t&__active {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\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, `.files-list__breadcrumbs[data-v-7b525302]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-7b525302] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-7b525302]{flex-direction:column !important;align-items:flex-start !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin-block: 0;\\n\\tmargin-inline: 10px;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column-sort-button[data-v-c3dbd7e0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-c3dbd7e0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-c3dbd7e0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-c3dbd7e0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-c3dbd7e0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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, `.files-list[data-v-1affbcbc]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-1affbcbc]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-1affbcbc] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-1affbcbc] tbody tr{contain:strict}.files-list[data-v-1affbcbc] tbody tr:hover,.files-list[data-v-1affbcbc] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-1affbcbc] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-1affbcbc] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-1affbcbc] .files-list__table{display:block}.files-list[data-v-1affbcbc] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-1affbcbc] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-1affbcbc] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-1affbcbc] .files-list__thead,.files-list[data-v-1affbcbc] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-1affbcbc] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-1affbcbc] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-1affbcbc] td,.files-list[data-v-1affbcbc] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-1affbcbc] td span,.files-list[data-v-1affbcbc] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-1affbcbc] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-1affbcbc] .files-list__row-checkbox{justify-content:center}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-1affbcbc] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-1affbcbc] .files-list__row:hover,.files-list[data-v-1affbcbc] .files-list__row:focus,.files-list[data-v-1affbcbc] .files-list__row:active,.files-list[data-v-1affbcbc] .files-list__row--active,.files-list[data-v-1affbcbc] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-1affbcbc] .files-list__row:hover>*,.files-list[data-v-1affbcbc] .files-list__row:focus>*,.files-list[data-v-1affbcbc] .files-list__row:active>*,.files-list[data-v-1affbcbc] .files-list__row--active>*,.files-list[data-v-1affbcbc] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-1affbcbc] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-1affbcbc] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-1affbcbc] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-1affbcbc] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-1affbcbc] .files-list__row-icon *{cursor:pointer}.files-list[data-v-1affbcbc] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-1affbcbc] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-1affbcbc] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-1affbcbc] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-1affbcbc] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-1affbcbc] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-1affbcbc] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-1affbcbc] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-1affbcbc] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-1affbcbc] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-1affbcbc] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-1affbcbc] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-1affbcbc] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-1affbcbc] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-1affbcbc] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-1affbcbc] .files-list__row-actions{width:auto}.files-list[data-v-1affbcbc] .files-list__row-actions~td,.files-list[data-v-1affbcbc] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-1affbcbc] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-1affbcbc] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-1affbcbc] .files-list__row-mime,.files-list[data-v-1affbcbc] .files-list__row-mtime,.files-list[data-v-1affbcbc] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-1affbcbc] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-1affbcbc] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-1affbcbc] .files-list__row-mime{width:calc(var(--row-height)*2.5)}.files-list[data-v-1affbcbc] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-1affbcbc] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 32px;\\n\\n\\t--fixed-block-start-position: var(--default-clickable-area);\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(.file-list-filters__active) {\\n\\t\\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-error);\\n\\t\\t\\t\\t\\tcolor: red;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime,\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\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, `.toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-0ca874fa]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-0ca874fa]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-0ca874fa]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-0ca874fa]{flex:0 0}.files-list__header-share-button[data-v-0ca874fa]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-0ca874fa]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-0ca874fa]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__before[data-v-0ca874fa]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-0ca874fa]{display:flex;height:100%}.files-list__refresh-icon[data-v-0ca874fa]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-0ca874fa]{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-share-button {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t\\t\\t&--shared {\\n\\t\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t\\tmargin-inline: calc(var(--default-grid-baseline) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__before {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropNotice.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 55px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\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, `.setting-link[data-v-9a0994e0]:hover{text-decoration:underline}.shortcut-key[data-v-9a0994e0]{width:160px;white-space:normal}.shortcut-key span[data-v-9a0994e0]{white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\\n.shortcut-key {\\n\\twidth: 160px;\\n\\t// some shortcuts are too long to fit in one line\\n\\twhite-space: normal;\\n\\tspan {\\n\\t\\t// force portion of a shortcut on a new line for nicer display\\n\\t\\twhite-space: nowrap;\\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, `.app-navigation-entry__settings-quota[data-v-d3cdbf54]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-d3cdbf54] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-d3cdbf54]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\\n\\n\\t&--not-unlimited :deep(.app-navigation-entry__name) {\\n\\t\\tline-height: 1;\\n\\t\\tmargin-top: var(--app-navigation-quota-margin);\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: var(--app-navigation-quota-margin);\\n\\t\\tmargin-inline-start: var(--default-clickable-area);\\n\\t\\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\\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, `.app-navigation[data-v-084c464a] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-084c464a]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-084c464a]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-084c464a]{height:100%}.files-navigation[data-v-084c464a] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t&__list {\\n\\t\\theight: 100%; // Fill all available space for sticky views\\n\\t}\\n\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import '../assets/index-BrcnDXgp.css';\nimport { getSharingToken, isPublicShare } from \"@nextcloud/sharing/public\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { formatFileSize, Folder, davRemoteURL, davRootPath, Permission, FileType, davGetClient, validateFilename, InvalidFilenameError, getUniqueName, getNewFileMenuEntries, NewMenuEntryCategory } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getBaseUrl, generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay, isNetworkOrIdempotentRequestError } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport NcActionCaption from \"@nextcloud/vue/dist/Components/NcActionCaption.js\";\nimport NcActionSeparator from \"@nextcloud/vue/dist/Components/NcActionSeparator.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport NcProgressBar from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { spawnDialog, showInfo, showWarning } from \"@nextcloud/dialogs\";\nconst gtBuilder = getGettextBuilder().detectLocale();\n[{ \"locale\": \"af\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: af\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ar\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Ali <alimahwer@yahoo.com>, 2025\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ar\", \"Plural-Forms\": \"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;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nabu.s3ud, 2024\\nAli <alimahwer@yahoo.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Ali <alimahwer@yahoo.com>, 2025\\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: 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;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" هو اسم ممنوع لملف أو مجلد.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" هو نوع ممنوع أن يكون لملف.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" هو غير مسموح به في اسم ملف أو مجلد.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} متبقية\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"بضع ثوانٍ متبقية\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"تجميع\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"إلغاء\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"إلغاء عمليات رفع الملفات\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"إستمر\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"إنشاء جديد\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"الإصدار الحالي\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"تعذّرت إعادة تجميع الكتل معاً \"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"تعذّر رفع الملف\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['غير مسموح ان ينتهي اسم الملف بـ \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"اسم ملف غير صحيح\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"تاريخ آخر تعديل غير معروف\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"اسم ملف جديد\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخة جديدة\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مُجمَّد\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"معاينة الصورة\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغيير التسمية\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"حدِّد كل الملفات الجديدة\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"تخطِّي\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"حجم غير معلوم\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"رفع الملفات\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"رفع ملفات\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"رفع مجلدات\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"الرفع من جهاز \"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"تمّ إلغاء عملية رفع الملفات\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"تمّ تجاوز الرفع\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['رفع \"{folder}\" تمّ تجاوزه'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { \"locale\": \"ast\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nenolp <enolp@softastur.org>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp <enolp@softastur.org>, 2023\\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden unos segundos\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Encaboxar les xubes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Siguir\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando'l tiempu que falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"La data de la última modificación ye desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en posa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar toles caxelles\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Encaboxóse la xuba\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Xubir ficheros\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { \"locale\": \"az\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRashad Aliyev <microphprashad@gmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: az\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} qalıb\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir neçə saniyə qalıb\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Əlavə et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yükləməni imtina et\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Təxmini qalan vaxt\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauzadadır\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Faylları yüklə\"] } } } } }, { \"locale\": \"be\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: be\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bg\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bg_BG\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bn_BD\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bn_BD\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"br\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bs\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ca\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2022\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segons\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Queden uns segons\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Afegeix\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"S'està estimant el temps restant\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"En pausa\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2025\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\\nMartin Hankovec, 2024\\nAppukonrad <appukonrad@gmail.com>, 2024\\nPavel Borecki <pavel.borecki@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2025\\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít jako název souboru či složky.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ není povoleného typu souboru.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít v rámci názvu souboru či složky.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\", \"zbývají {seconds}\", \"zbývá {seconds}\", \"zbývají {seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"zbývá {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zbývá několik sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sestavování\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušit\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušit nahrávání\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvořit nový\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhaduje se zbývající čas\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Shluky se nepodařilo dát dohromady\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Soubor se nepodařilo nahrát\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Názvy souborů nemohou končit na „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný název souboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Neznámé datum poslední úpravy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový název souboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastaveno\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhled obrázku\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Přejmenovat\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat veškeré nové soubory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Přeskočit\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit {count} soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznámá velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrát\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrát soubory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrát složky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrát ze zařízení\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávání bylo zrušeno\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrání bylo přeskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Nahrání „{folder}“ bylo přeskočeno\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory si přejete ponechat?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { \"locale\": \"cy_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cy_GB\\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"da\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2025\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde <Martin@maboni.dk>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Bonde <Martin@maboni.dk>, 2025\\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tilladt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\", \"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samling\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuller\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuller uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opret ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimering af resterende tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Mislykkedes at samle stumperne sammen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunne ikke uploade filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvisning af billede\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøb\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vælg alle felter\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Spring over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload fra enhed\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload er blevet annulleret\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer ønsker du at beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { \"locale\": \"de\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2025\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\\nMartin Wilichowski, 2025\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\\nMario Siegmann <mario_siegmann@web.de>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Das Zusammenfügen der Teile ist fehlgeschlagen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Das Hochladen der Datei ist fehlgeschlagen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchtest du behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"de_DE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2025\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMartin Wilichowski, 2025\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2025\\nMario Siegmann <mario_siegmann@web.de>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2025\\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Das Zusammenfügen der Teile ist fehlgeschlagen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Beim Hochladen der Datei ist ein Fehler aufgetreten\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchten Sie behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"el\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Efstathios Iosifidis <iefstathios@gmail.com>, 2025\", \"Language-Team\": \"Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nEfstathios Iosifidis <iefstathios@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2025\\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Το \"{segment}\" είναι απαγορευμένο όνομα αρχείου ή φακέλου.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Το \"{segment}\" είναι απαγορευμένος τύπος αρχείου.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Το \"{segment}\" δεν επιτρέπεται μέσα στο όνομα ενός αρχείου ή φακέλου.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} αρχείο σε διένεξη\", \"{count} αρχεία σε διένεξη\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} αρχείο σε διένεξη στον φάκελο {dirname}\", \"{count} αρχεία σε διένεξη στον φάκελο {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Απομένει {seconds} δευτερόλεπτο\", \"Απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"απομένουν {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"συναρμολόγηση\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Ακύρωση\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Ακύρωση όλης της λειτουργίας\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ακύρωση μεταφορτώσεων\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Συνέχεια\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Δημιουργία νέου\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"εκτίμηση του χρόνου που απομένει\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Υπάρχουσα έκδοση\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Αποτυχία συναρμολόγησης των τμημάτων\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Αποτυχία μεταφόρτωσης του αρχείου\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Αν επιλέξετε και τις δύο εκδόσεις, το εισερχόμενο αρχείο θα έχει έναν αριθμό προσαρτημένο στο όνομά του.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Μη έγκυρο όνομα αρχείου\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Άγνωστη ημερομηνία τελευταίας τροποποίησης\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Νέο\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Νέο όνομα αρχείου\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Νέα έκδοση\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"σε παύση\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Προεπισκόπηση εικόνας\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Μετονομασία\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Επιλογή όλων των πλαισίων ελέγχου\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Επιλογή όλων των υπαρχόντων αρχείων\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Επιλογή όλων των νέων αρχείων\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Παράλειψη\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Παράλειψη αυτού του αρχείου\", \"Παράλειψη {count} αρχείων\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Άγνωστο μέγεθος\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Μεταφόρτωση\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Μεταφόρτωση αρχείων\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Μεταφόρτωση φακέλων\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Μεταφόρτωση από συσκευή\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Η μεταφόρτωση ακυρώθηκε\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Η μεταφόρτωση παραλείφθηκε\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Η μεταφόρτωση του \"{folder}\" παραλείφθηκε'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Πρόοδος μεταφόρτωσης\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Όταν επιλέγεται ένας εισερχόμενος φάκελος, όλα τα αρχεία σε διένεξη μέσα σε αυτόν θα αντικατασταθούν.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Όταν επιλέγεται ένας εισερχόμενος φάκελος, το περιεχόμενό του γράφεται στον υπάρχοντα φάκελο και εκτελείται αναδρομική επίλυση διενέξεων.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ποια αρχεία θέλετε να διατηρήσετε;\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Μπορείτε είτε να μετονομάσετε το αρχείο, να παραλείψετε αυτό το αρχείο ή να ακυρώσετε όλη τη λειτουργία.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία έκδοση κάθε αρχείου για να συνεχίσετε.\"] } } } } }, { \"locale\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2025\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndi Chandler <andi@gowling.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler <andi@gowling.com>, 2025\\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is a forbidden file or folder name.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is a forbidden file type.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is not allowed inside a file or folder name.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\", \"{seconds} seconds left\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} left\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"a few seconds left\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assembling\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Create new\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimating time left\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Failed assembling the chunks together\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Failed uploading the file\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filenames must not end with \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Invalid filename\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"New filename\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"paused\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Preview image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rename\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Skip\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unknown size\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload files\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload folders\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload from device\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload has been cancelled\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload has been skipped\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload of \"{folder}\" has been skipped'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload progress\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"You can either rename the file, skip this file or cancel the whole operation.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] } } } } }, { \"locale\": \"eo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\\nJulio C. Ortega, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2024\\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_419\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nALEJANDRO CASTRO, 2022\\n\" }, \"msgstr\": [\"Last-Translator: ALEJANDRO CASTRO, 2022\\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_419\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"agregar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] } } } } }, { \"locale\": \"es_AR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Matías Campo Hoet <matiascampo@gmail.com>, 2024\", \"Language-Team\": \"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_AR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa de imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Cargar archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Cargar carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Cargar desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Carga cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la carga\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_CL\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CL\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_DO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_DO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_EC\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_EC\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_GT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_GT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_HN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_HN\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_MX\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jehu Marcos Herrera Puentes, 2024\", \"Language-Team\": \"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJehu Marcos Herrera Puentes, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Jehu Marcos Herrera Puentes, 2024\\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_MX\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿Cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivo en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Cuáles archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_NI\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_NI\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PA\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PA\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PE\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_SV\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_SV\\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_UY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_UY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"et_EE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Priit Jõerüüt <transifex@joeruut.com>, 2025\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPriit Jõerüüt <transifex@joeruut.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Priit Jõerüüt <transifex@joeruut.com>, 2025\\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: et_EE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ on keelatud faili- või kausta nimi.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ on keelatud failitüüp.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ pole faili- või kausta nimes lubatud.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fail on vastuolus\", \"{count} faili on vastuolus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail on vastuolus „{dirname}“ kaustas\", \"{count} faili on vastuolus „{dirname}“ kaustas\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"jäänud {seconds} sekund\", \"jäänud {seconds} sekundit\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"aega jäänud {time} \"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"koostamisel\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Katkesta üleslaadimine\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Loo uus\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Tükkide koostamine üheks tervikuks ei õnnestunud\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Faili üleslaadimine ei õnnestunud\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Failinime lõpus ei tohi olla „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Vigane failinimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uus failinimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vaata pildi eelvaadet\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Muuda nime\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Jäta vahele\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Jäta vahele {count} fail\", \"Jäta vahele {count} faili\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta vahele see fail\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tundmatu suurus\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Laadi üles\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Laadi failid üles\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Laadi kaustad üles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Laadi üles seadmest\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Üleslaadimine on katkestatud\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Üleslaadimine on vahele jäetud\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}“ kausta üleslaadimine on vahele jäetud\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Üleslaadimise edenemine\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Milliseid faile soovid säilitada?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Jätkamiseks pead valima vähemalt ühe versiooni igast failist.\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} geratzen da\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"segundo batzuk geratzen dira\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Gehitu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ezeztatu igoerak\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"kalkulatutako geratzen den denbora\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"geldituta\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Igo fitxategiak\"] } } } } }, { \"locale\": \"fa\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Alireza Rashidi, 2025\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nreza reza <forghan89@yahoo.com>, 2024\\nAlireza Rashidi, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Alireza Rashidi, 2025\\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"{segment} یک نام فایل یا پوشه ممنوعه است.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"{segment} یک نوع فایل ممنوعه است.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"{segment} داخل نام فایل یا پوشه مجاز نیست.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} تداخل فایل\", \"{count} تداخل فایلها\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} پرونده با {dirname} ناسازگاری داشت\", \"{count} پرونده با {dirname} ناسازگاری داشت\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانیه مانده\", \"{seconds} ثانیه مانده\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} باقی مانده\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"چند ثانیه مانده\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"سرهم کردن\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"رد کردن\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"رد کردن کل عملیات\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"رد کردن بارگذاری\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"ادامه\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"ساخت جدید\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تخمین زمان باقی مانده\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"نگارش موجود\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"نتوانست تکههای را به سرهم کند\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"نتوانست پرونده را بارگذاری کند\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"نام پرونده نباید با {segment} پایان یابد.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"اگر هر دو نسخه را انتخاب کنید، یک عدد به نام پرونده ورودی اضافه خواهد شد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"نام پرونده نامعتبر\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"آخرین تاریخ تغییر نامشخص\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جدید\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"نام فایل جدید\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخه جدید\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مکث کردن\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"پیش نمایش تصویر\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغییر نام\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"انتخاب همه چکباکسها\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"انتخاب همه فایلهای موجود\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"انتخاب همه فایلهای جدید\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"رد شدن\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"رد شدن از \", \"رد شدن از {count} فایل\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"اندازه نامشخص\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"بارگذاری\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"بارگذاری پروندهها\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"بارگذاری پوشهها\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"بارگذاری از دستگاه\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"بارگذاری رد شده است\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"بارگذاری نادیده گرفته شده است\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"بارگذاری {folder} نادیده گرفته شده است\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"روند بارگذاری\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"هنگامی که یک پوشه ورودی انتخاب میشود، هر فایل متناقضی در آن نیز بازنویسی میشود.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"هنگامی که یک پوشه دریافتی انتخاب می شود ، محتوا در پوشه موجود نوشته می شود و حل ناسازگاری بازگشتی انجام می شود.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"کدام پروندهها را میخواهید نگه دارید؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"میتوانید نام پرونده را تغییر دهید، از این پرونده رد شوید یا کل عملیات را رد کنید.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"برای ادامه باید دستکم یک نگارش از هر پرونده را انتخاب کنید.\"] } } } } }, { \"locale\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\", \"Language-Team\": \"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nthingumy, 2024\\nteemue, 2024\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2025\\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" on kielletty tiedoston tai hakemiston nimi.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" on kielletty tiedostotyyppi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ei ole sallittu tiedoston tai hakemiston nimessä.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} tiedoston ristiriita\", \"{count} tiedoston ristiriita\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tiedoston ristiriita kansiossa {dirname}\", \"{count} tiedoston ristiriita kansiossa {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunti jäljellä\", \"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} jäljellä\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"muutama sekunti jäljellä\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"kootaan\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Peruuta koko toimenpide\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Peruuta lähetykset\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jatka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Luo uusi\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"arvioidaan jäljellä olevaa aikaa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemassa oleva versio\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Palojen kokoaminen yhteen epäonnistui\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tiedoston lähetys epäonnistui\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tiedoston nimi ei saa päättyä \"{segment}\"'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Kielletty/väärä tiedoston nimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimeisin muokkauspäivä on tuntematon\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uusi tiedostonimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uusi versio\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"keskeytetty\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Esikatsele kuva\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Nimeä uudelleen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Valitse kaikki valintaruudut\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Valitse kaikki olemassa olevat tiedostot\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Valitse kaikki uudet tiedostot\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ohita\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ohita tämä tiedosto\", \"Ohita {count} tiedostoa\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tuntematon koko\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lähetä tiedostoja\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Lähetä kansioita\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Lähetä laitteelta\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Lähetys on peruttu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Lähetys on ohitettu\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Hakemiston \"{folder}\" lähetys on ohitettu'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Lähetyksen edistyminen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mitkä tiedostot haluat säilyttää?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi.\"] } } } } }, { \"locale\": \"fo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"fr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Lisa Cintosh, 2025\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nBenoit Pruneau, 2024\\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\\nJérôme HERBINET, 2024\\nacazenave, 2024\\nLisa Cintosh, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Lisa Cintosh, 2025\\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" est un nom de fichier ou de dossier interdit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" est un type de fichier interdit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde restante\", \"{seconds} secondes restantes\", \"{seconds} secondes restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restant\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quelques secondes restantes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuler les téléversements\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Créer un nouveau\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimation du temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Version existante\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Échec de l'assemblage des morceaux\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Échec du téléversement du fichier\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Le nom des fichiers ne doit pas finir par \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fichier invalide\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de la dernière modification est inconnue\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nouveau nom de fichier\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pause\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Aperçu de l'image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renommer\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Taille inconnue\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Téléverser\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Téléverser des fichiers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Téléverser des dossiers\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Téléverser depuis l'appareil\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Le téléversement a été annulé\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Le téléversement a été ignoré\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Le téléversement de \"{folder}\" a été ignoré'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progression du téléversement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { \"locale\": \"ga\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Aindriú Mac Giolla Eoin, 2025\", \"Language-Team\": \"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ga\", \"Plural-Forms\": \"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nAindriú Mac Giolla Eoin, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2025\\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ga\\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Is ainm toirmiscthe comhaid nó fillteáin é \"{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Is cineál comhaid toirmiscthe é \"{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`Ní cheadaítear \"{segment}\" taobh istigh d'ainm comhaid nó fillteáin.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} coimhlint comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} coimhlint comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} fágtha\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"cúpla soicind fágtha\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ag cur le chéile\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht iomlán\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cealaigh uaslódálacha\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Leanúint ar aghaidh\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Cruthaigh nua\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ag déanamh meastachán ar an am atá fágtha\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan láithreach \"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Theip ar na smután a chur le chéile le chéile\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Theip ar uaslódáil an chomhaid\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Níor cheart go gcríochnaíonn comhaid chomhad le \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ainm comhaid neamhbhailí\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta modhnaithe is déanaí anaithnid\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ainm comhaid nua\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"sos\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Íomhá réamhamharc\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Athainmnigh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh gach ticbhosca\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh gach comhad atá ann cheana féin\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Scipeáil\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad {count}\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Seachain an comhad seo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Méid anaithnid\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uaslódáil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Uaslódáil comhaid\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Uaslódáil fillteáin\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Íosluchtaigh ó ghléas\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Cuireadh an t-uaslódáil ar ceal\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Léiríodh an uaslódáil\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Léiríodh an uaslódáil \"{folder}\".'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uaslódáil dul chun cinn\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh.\"] } } } } }, { \"locale\": \"gd\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gd\\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"gl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2025\\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» é un nome vedado para un ficheiro ou cartafol.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» é un tipo de ficheiro vedado.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"falta {seconds} segundo\", \"faltan {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"falta {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltan uns segundos\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancela toda a operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envíos\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear un novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calculando canto tempo falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Produciuse un fallo ao ensamblar os anacos\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Produciuse un fallo ao enviar o ficheiro\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Os nomes de ficheiros non deben rematar con «{segment}».\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"O nome de ficheiro non é válido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nova\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"detido\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa da imaxe\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño descoñecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar cartafoles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Enviar dende o dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O envío foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O envío foi omitido\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"O envío de «{folder}» foi omitido\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso do envío\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"he\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hi_IN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hi_IN\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hr\\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hsb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hsb\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\", \"Language-Team\": \"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Tiltott fájl- vagy mappanév: „{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Tiltott fájltípus: „{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Nem megengedett egy fájl- vagy mappanévben: „{segment}\".'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fájlt érintő konfliktus\", \"{count} fájlt érintő konfliktus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fájlt érintő konfliktus a mappában: {dirname}\", \"{count}fájlt érintő konfliktus a mappában: {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{} másodperc van hátra\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} van hátra\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"pár másodperc van hátra\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Teljes művelet megszakítása\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Feltöltések megszakítása\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tovább\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Új létrehozása\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hátralévő idő becslése\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Jelenlegi változat\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Fájlnevek nem végződhetnek erre: „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Érvénytelen fájlnév\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Utolsó módosítás dátuma ismeretlen\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Új fájlnév\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"szüneteltetve\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Kép előnézete\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Átnevezés\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Minden jelölőnégyzet kijelölése\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Minden jelenlegi fájl kijelölése\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Minden új fájl kijelölése\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Kihagyás\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ezen fájl kihagyása\", \"{count}fájl kihagyása\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ismeretlen méret\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Feltöltés\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fájlok feltöltése\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappák feltöltése\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Feltöltés eszközről\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Feltöltés meg lett szakítva\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Feltöltés át lett ugorva\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}” feltöltése át lett ugorva\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Feltöltési folyamat\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat kívánja megtartani?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz minden fájlból legalább egy verziót ki kell választani.\"] } } } } }, { \"locale\": \"hy\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hy\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ia\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ia\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"id\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nEmpty Slot Filler, 2023\\nLinerly <linerly@proton.me>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly <linerly@proton.me>, 2023\\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} detik tersisa\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tersisa\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Batalkan unggahan\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal perubahan terakhir tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"dijeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua berkas baru\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Lewati {count} berkas\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Unggahan dibatalkan\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { \"locale\": \"ig\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ig\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"is\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2025\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nSveinn í Felli <sv1@fellsnet.is>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2025\\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er bannað sem heiti á skrá eða möppu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er bönnuð skráartegund.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ekki leyfilegt innan í heiti á skrá eða möppu.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnda eftir\", \"{seconds} sekúndur eftir\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} eftir\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"nokkrar sekúndur eftir\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"set saman\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Hætta við\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Hætta við alla aðgerðina\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Búa til nýtt\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Mistókst að setja saman bútana\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Mistókst að senda inn skrána\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Skráaheiti mega ekki enda á \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ógilt skráarheiti\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nýtt skráarheiti\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Endurnefna\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velja gátreiti\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velja allar nýjar skrár\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Sleppa\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Óþekkt stærð\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Senda inn\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Senda inn möppur\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Senda inn frá tæki\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Hætt hefur verið við innsendingu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Innsendingu hefur verið sleppt\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Innsendingu á \"{folder}\" hefur verið sleppt'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Framvinda innsendingar\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { \"locale\": \"it\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"albanobattistella <albanobattistella@gmail.com>, 2024\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella <albanobattistella@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} rimanente\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alcuni secondi rimanenti\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare con \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { \"locale\": \"ja\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"test test, 2025\", \"Language-Team\": \"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nkojima.imamura, 2024\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\nkshimohata, 2024\\ntest test, 2025\\n\" }, \"msgstr\": [\"Last-Translator: test test, 2025\\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" は禁止されているファイルまたはフォルダ名です。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" は禁止されているファイルタイプです。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['ファイルまたはフォルダ名に \"{segment}\" を含めることはできません。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ファイル数の競合\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} で {count} 個のファイルが競合しています\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"残り{seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"残り {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"残り数秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"組み立て中\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセルする\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"アップロードをキャンセル\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"続ける\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新規作成\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"概算残り時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既存バージョン\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"チャンクを一緒に組み立てるのに失敗しました。\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"ファイルのアップロードに失敗しました。\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['ファイル名の末尾に \"{segment}\" を付けることはできません。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無効なファイル名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新しいファイル名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新しいバージョン\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"一時停止中\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"プレビュー画像\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"名前を変更\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべて選択\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"すべての既存ファイルを選択\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"スキップ\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"サイズ不明\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"アップロード\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"ファイルをアップロード\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"フォルダのアップロード\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"デバイスからのアップロード\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"アップロードはキャンセルされました\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"アップロードがスキップされました\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" のアップロードがスキップされました'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"アップロード進行状況\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを保持しますか?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。\"] } } } } }, { \"locale\": \"ka\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ka_GE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka_GE\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kab\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nZiriSut, 2023\\n\" }, \"msgstr\": [\"Last-Translator: ZiriSut, 2023\\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kab\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"qqiment-d kra n tesdatin kan\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Rnu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Sefsex asali\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"asizel n wakud i d-yeqqimen\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"yeḥbes\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Sali-d ifuyla\"] } } } } }, { \"locale\": \"kk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kk\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"km\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: km\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kn\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ko\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"이상오, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n이상오, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 이상오, 2024\\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 및 폴더 이름입니다.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 형식입니다.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['파일이나 폴더 이름에 \"{segment}\"(을)를 사용할 수 없습니다.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds}초 남음\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} 남음\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"곧 완료\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업을 취소\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"업로드 취소\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"확인\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"새로 만들기\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"남은 시간 계산\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"현재 버전\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['파일 이름은 \"{segment}\"(으)로 끝나야 합니다.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"잘못된 파일 이름\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"새 파일 이름\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"새 버전\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"일시정지됨\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"미리보기 이미지\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"이름 바꾸기\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"모든 체크박스 선택\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일을 모두 선택\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"새로운 파일을 모두 선택\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"크기를 알 수 없음\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"업로드\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"파일 업로드\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"폴더 업로드\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"장치에서 업로드\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"업로드가 취소되었습니다.\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"업로드를 건너뛰었습니다.\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 업로드를 건너뛰었습니다.'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"업로드 진행도\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일을 보존하시겠습니까?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { \"locale\": \"la\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: la\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lb\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lt_LT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Edgars Andersons, 2025\", \"Language-Team\": \"Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPapuass <martinsb@gmail.com>, 2024\\nArmīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024\\nEdgars Andersons, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Edgars Andersons, 2025\\nLanguage-Team: Latvian (https://app.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes vai mapes nosaukums.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes veids.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ir nav ļauts datnes vai mapes nosaukumā.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} nesaderīgu datņu\", \"{count} nesaderīga datne\", \"{count} nesaderīgas datnes\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} nesaderīgu datņu {dirname}\", \"{count} nesaderīga datne {dirname}\", \"{count} nesaderīgas datnes {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Atlikušas {seconds} sekundes\", \"Aatlikusi {seconds} sekunde\", \"Atlikušas {seconds} sekundes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"atlicis {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"atlikušas dažas sekundes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sakopo\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Atcelt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atcelt visu darbību\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Atcelt augšupielādes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Turpināt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Izveidot jaunu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"paredzamais atlikušais laiks\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Esošā versija\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Neizdevās apvienot gabalus\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Neizdevās augšupielādēt datni\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Datnes nosaukumi nedrīkst beigties ar \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nederīgs datnes nosaukums\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Pēdējais izmainīšanas datums nav zināms\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Jauns datnes nosaukums\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Jauna versija\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"apturēta\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Priekšskatīt attēlu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Pārdēvēt\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Atlasīt visas izvēles rūtiņas\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Atlasīt visas esošās datnes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Atlasīt visas jaunās datnes\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Izlaist\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Izlaist {count} datņu\", \"Izlaist šo datni\", \"Izlaist {count} datnes\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nezināms izmērs\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Augšupielādēt\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Augšupielādēt datnes\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Augšupielādēt mapes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Augšupielādēt no ierīces\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Augšupielāde tika atcelta\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Augšupielāde tika izlaista\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" augšupielāde tika izlaista'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Augšupielādes virzība\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kuras datnes paturēt?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu.\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nСашко Тодоров <sasetodorov@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"преостанува {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"уште неколку секунди\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Додади\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Прекини прикачување\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"приближно преостанато време\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Прикачување датотеки\"] } } } } }, { \"locale\": \"mn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nBATKHUYAG Ganbold, 2023\\n\" }, \"msgstr\": [\"Last-Translator: BATKHUYAG Ganbold, 2023\\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} үлдсэн\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"хэдхэн секунд үлдсэн\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Нэмэх\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Үлдсэн хугацааг тооцоолж байна\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"түр зогсоосон\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Файл илгээх\"] } } } } }, { \"locale\": \"mr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mr\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ms_MY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"locale\": \"my\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Roger Knutsen, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRoger Knutsen, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Roger Knutsen, 2024\\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tillatt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder igjen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} igjen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"noen få sekunder igjen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hele operasjonen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt opplastninger\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsett\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opprett ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Estimerer tid igjen\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Gjeldende versjon\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavn må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldig filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Siste gang redigert ukjent\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny versjon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvis bilde\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøp\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velg alle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hopp over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukjent størrelse\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Last opp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Last opp mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Last opp fra enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Opplastingen er kansellert\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Opplastingen er hoppet over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Opplasting av \"{folder}\" er hoppet over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fremdrift, opplasting\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { \"locale\": \"ne\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ne\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRico <rico-schwab@hotmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Nog {seconds} seconden\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{seconds} over\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Voeg toe\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploads annuleren\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Schatting van de resterende tijd\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Gepauzeerd\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Valdnet, 2025\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPiotr Strebski <strebski@gmail.com>, 2024\\nValdnet, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Valdnet, 2025\\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" to zabroniona nazwa pliku lub katalogu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" jest zabronionym typem pliku.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Znak \"{segment}\" nie jest dozwolony w nazwie pliku lub katalogu.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Pozostało {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Pozostało kilka sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anuluj wysyłanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nazwy plików nie mogą kończyć się na \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nieznany rozmiar\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Wyślij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Wyślij katalogi\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Wyślij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Wysyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Wysyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Wysyłanie \"{folder}\" zostało pominięte'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postęp wysyłania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu katalogu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu i przeprowadzane jest rekursywne rozwiązywanie konfliktów.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { \"locale\": \"ps\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ps\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pt_BR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"F Bausch, 2025\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\\nF Bausch, 2025\\n\" }, \"msgstr\": [\"Last-Translator: F Bausch, 2025\\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" é um nome de arquivo ou pasta proibido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" é um tipo de arquivo proibido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" não é permitido dentro de um nome de arquivo ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo restante\", \"{seconds} segundos restantes\", \"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alguns segundos restantes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montando\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao montar os pedaços juntos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao fazer o upload do arquivo\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes dos arquivos não devem terminar com \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de arquivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de arquivo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pular {count} arquivo\", \"Pular {count} arquivos\", \"Pular {count} arquivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pular este arquivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Fazer upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fazer upload de arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Fazer upload de pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Fazer upload do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O upload foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O upload foi pulado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O upload de \"{folder}\" foi pulado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso de upload\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando uma pasta recebida é selecionada, todos os arquivos conflitantes dentro dela também serão sobrescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta recebida é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { \"locale\": \"pt_PT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nManuela Silva <mmsrs@sky.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adicionar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envios\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ro\\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secunde rămase\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} rămas\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"câteva secunde rămase\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adaugă\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anulați încărcările\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimarea timpului rămas\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pus pe pauză\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Încarcă fișiere\"] } } } } }, { \"locale\": \"ru\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Александр, 2025\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nВлад, 2024\\nAlex <fedotov22091982@gmail.com>, 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Александр, 2025\\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» — это запрещенное имя файла или папки.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» — это запрещенный тип файла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» не допускается в имени файла или папки.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"конфликт {count} файла в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"осталась {seconds} секунда\", \"осталось {seconds} секунды\", \"осталось {seconds} секунд\", \"осталось {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"осталось {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"осталось несколько секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"сборка\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Отменить\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отменить операцию целиком\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Отменить загрузки\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Создать новое\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оценка оставшегося времени\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не удалось собрать части вместе\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Не удалось загрузить файл\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена файлов не должны заканчиваться на «{segment}»\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неверное имя файла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Новое имя файла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"приостановлено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Предварительный просмотр\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Переименовать\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустить\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Неизвестный размер\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Загрузить\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Загрузить файлы\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Загрузить папки\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Загрузить с устройства\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Загрузка была отменена\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Загрузка была пропущена\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Загрузка «{folder}» была пропущена\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Прогресс загрузки\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Вы можете переименовать файл, пропустить этот файл или отменить всю операцию.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { \"locale\": \"sc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sc\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"si\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tomas Rusnak <linkermail@gmail.com>, 2024\", \"Language-Team\": \"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJozef Gaal <preklady@mayday.sk>, 2024\\nTomas Rusnak <linkermail@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnd zostáva\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť tento súbor\", \"Preskočiť {count} súbory\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"locale\": \"sl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Simon Bogina, 2024\", \"Language-Team\": \"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJan Kraljič <jan.kraljic@patware.eu>, 2024\\nSimon Bogina, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Simon Bogina, 2024\\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" je prepovedano ime datoteka ali mape.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je prepovedan tip datoteke.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ni dovoljeno v imenu datoteke ali mape.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"1{count} datoteka je v konfliktu\", \"1{count} datoteki sta v konfiktu\", \"1{count} datotek je v konfliktu\", \"{count} datotek je v konfliktu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} datoteka je v konfiktu v {dirname}\", \"{count} datoteki sta v konfiktu v {dirname}\", \"{count} datotek je v konfiktu v {dirname}\", \"{count} konfliktov datotek v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"še {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"še {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"še nekaj sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Prekliči\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Prekliči celotni postopek\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Prekliči pošiljanje\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Nadaljuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Ustvari nov\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ocenjujem čas do konca\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Obstoječa različica\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Imena datotek se ne smejo končati s \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nepravilno ime datoteke\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum zadnje spremembe neznan\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo ime datoteke\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova različica\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"v premoru\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Predogled slike\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Preimenuj\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Izberi vsa potrditvena polja\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi vse obstoječe datoteke\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi vse nove datoteke\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskoči\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskoči datoteko\", \"Preskoči {count} datoteki\", \"Preskoči {count} datotek\", \"Preskoči {count} datotek\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznana velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Naloži\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Naloži datoteke\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Naloži mape\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Naloži iz naprave\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nalaganje je bilo preklicano\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nalaganje je bilo preskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nalaganje \"{folder}\" je bilo preskočeno'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Napredek nalaganja\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Katere datoteke želite obdržati?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Izbrati morate vsaj eno različico vsake datoteke da nadaljujete.\"] } } } } }, { \"locale\": \"sq\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Иван Пешић, 2024\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nИван Пешић, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2024\\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” је забрањено име фајла или фолдера.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” је забрањен тип фајла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}” није дозвољено унутар имена фајла или фолдера.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} преостало\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"преостало је неколико секунди\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отказује комплетну операцију\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Обустави отпремања\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Настави\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Креирај ново\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"процена преосталог времена\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Постојећа верзија\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена фајлова не смеју да се завршавају на „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако изаберете обе верзије, на име долазног фајла ће се додати број.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неисправно име фајла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Није познат датум последње измене\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ново име фајла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Слика прегледа\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Промени име\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изабери све нове фајлове\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Прескочи\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Непозната величина\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Отпреми\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Отпреми фајлове\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Отпреми фолдере\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Отпреми са уређаја\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Отпремање је отказано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Отпремање је прескочено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Отпремање „{folder}”је прескочено\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Напредак отпремања\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Које фајлове желите да задржите?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { \"locale\": \"sr@latin\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr@latin\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Magnus Höglund, 2025\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMagnus Höglund, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2025\\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" är ett förbjudet fil- eller mappnamn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" är en förbjuden filtyp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" är inte tillåtet i ett fil- eller mappnamn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvar\", \"{seconds} sekunder kvar\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kvarstår\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"några sekunder kvar\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"Sammanställer\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt uppladdningar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Skapa ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"uppskattar kvarstående tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Misslyckades med att sammanställa delarna\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunde inte ladda upp filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnamn får inte sluta med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ogiltigt filnamn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnamn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausad\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Förhandsgranska bild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Byt namn\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hoppa över\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Okänd storlek\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Ladda upp\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Ladda upp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ladda upp mappar\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Ladda upp från enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Uppladdningen har avbrutits\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Uppladdningen har hoppats över\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Uppladdningen av \"{folder}\" har hoppats över'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { \"locale\": \"sw\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sw\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ta\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"th\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"เหลืออีก {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"เหลืออีกไม่กี่วินาที\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"เพิ่ม\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"กำลังคำนวณเวลาที่เหลือ\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"หยุดชั่วคราว\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"อัปโหลดไฟล์\"] } } } } }, { \"locale\": \"tk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tk\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"tr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2025\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nKaya Zeren <kayazeren@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2025\\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" dosya ya da klasör adına izin verilmiyor.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" dosya türüne izin verilmiyor.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Bir dosya ya da klasör adında \"{segment}\" ifadesine izin verilmiyor.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\", \"{seconds} saniye kaldı\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kaldı\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir kaç saniye kaldı\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"birleştiriliyor\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yüklemeleri iptal et\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yeni ekle\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"öngörülen kalan süre\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Parçalar birleştirilemedi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Dosya yüklenemedi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dosya adları \"{segment}\" ile bitmemeli.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Dosya adı geçersiz\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yeni dosya adı\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"duraklatıldı\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Görsel ön izlemesi\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Yeniden adlandır\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Atla\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} dosyayı atla\", \"{count} dosyayı atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu dosyayı atla\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Boyut bilinmiyor\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yükle\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dosyaları yükle\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Klasörleri yükle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Aygıttan yükle\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yükleme iptal edildi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yükleme atlandı\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" klasörünün yüklenmesi atlandı'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { \"locale\": \"ug\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ug\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2025\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nO St <oleksiy.stasevych@gmail.com>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2025\\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [`\"{segment}\" не є дозволеним ім'ям файлу або каталогу.`] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" не є дозволеним типом файлу.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" не дозволене сполучення символів в назві файлу або каталогу.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунда залишилася\", \"{seconds} секунди залишилося\", \"{seconds} секунд залишилося\", \"{seconds} секунд залишилося\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Залишилося {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"залишилося кілька секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"збірка\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Скасувати завантаження\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Створити новий\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оцінка часу, що залишився\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Присутня версія\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не вдалося зібрати частинки докупи\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Не вдалося завантажити файл\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Ім'я файлів не можуть закінчуватися на \"{segment}\".`] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Недійсне ім'я файлу\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Нове\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Нове ім'я файлу\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"призупинено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Попередній перегляд\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Перейменувати\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати усі нові файли\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустити\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити {count} файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Невідомий розмір\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Завантажити\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Завантажити файли\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Завантажити каталоги\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Завантажити з пристрою\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Завантаження скасовано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Завантаження пропущено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Завантаження \"{folder}\" пропущено'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { \"locale\": \"ur_PK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ur_PK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uz\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\", \"Language-Team\": \"Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nKhurshid Ibatov <x.ibatov@dtsj.uz>, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Khurshid Ibatov <x.ibatov@dtsj.uz>, 2025\\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl yoki papka nomidir.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl turi hisoblanadi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" fayl yoki papka nomi ichida ruxsat berilmaydi.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fayllar ziddiyati\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count}fayl ziddiyatlari {dirname} da\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soniya qoldi\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} qoldi\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir necha soniya qoldi\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"yig'ish\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yuklashni bekor qilish\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yangi yaratish\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"qolgan vaqtni hisoblash\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Bo'laklarni birlashtirib bo'lmadi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fayl yuklanmadi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Fayl nomlari bilan tugamasligi kerak \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Fayl nomi noto‘g‘ri\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yangi nom faylga\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"tanaffus\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Rasmni oldindan ko'rish\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Qayta nomlash\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Oʻtkazib yuborish\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Oʻtkazib yuborish {count} fayllarini\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Noma'lum o'lcham\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yuklash\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fayllarni yuklash\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Jildlarni yuklash\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Qurilmadan yuklash\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yuklash bekor qilindi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yuklash oʻtkazib yuborildi\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [' \"{folder}\" ni yuklash bekor qilindi'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yuklash jarayoni\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nTung DangQuang, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Tung DangQuang, 2023\\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Còn {second} giây\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Còn lại {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ngày sửa dổi lần cuối không xác định\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Tạo Mới\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Phiên Bản Mới\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"đã tạm dừng\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Dừng Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tập tin tải lên\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gloryandel, 2024\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGloryandel, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gloryandel, 2024\\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是被禁止的文件名或文件夹名。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是被禁止的文件类型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允许包含在文件名或文件夹名中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩余 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩余 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"还剩几秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整个操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上传\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"继续\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新建\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估计剩余时间\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"服务端版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['文件名不得以 \"{segment}\" 结尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果同时选择两个版本,则上传文件的名称中将添加一个数字。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"无效文件名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"文件最后修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新文件名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"上传版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暂停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"图片预览\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"选择所有的选择框\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"保留所有服务端版本\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"保留所有上传版本\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳过\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过{count}个文件\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"文件大小未知\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上传\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上传文件\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上传文件夹\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"从设备上传\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上传已取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上传已跳过\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['已跳过上传\"{folder}\"'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上传进度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你要保留哪些文件?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以重命名文件、跳过此文件或取消整个操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"每个文件至少选择保留一个版本\"] } } } } }, { \"locale\": \"zh_HK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Café Tango, 2025\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nCafé Tango, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2025\\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案或資料夾名稱。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案類型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允許出現在檔案或資料夾名稱中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"組裝\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"創建新\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"組裝這些部分時失敗\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"上傳文件失敗\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['檔案名不得以 \"{segment}\" 結尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,傳入檔案的名稱將會新增編號。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無效的檔案名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期不詳\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新檔案名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本 \"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重新命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳過\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"大小不詳\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上傳資料夾\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"從裝置上傳\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上傳已被取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上傳已被跳過\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 的上傳已被跳過'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以選擇重新命名檔案、跳過此檔案或取消整個操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { \"locale\": \"zh_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n黃柏諺 <s8321414@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"未知大小\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"已取消上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass UploadCancelledError extends Error {\n constructor(cause) {\n super(t(\"Upload has been cancelled\"), { cause });\n }\n}\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nasync function uploadData(url, uploadData2, uploadOptions) {\n const options = {\n headers: {},\n onUploadProgress: () => {\n },\n onUploadRetry: () => {\n },\n retries: 5,\n ...uploadOptions\n };\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (options.destinationFile) {\n options.headers.Destination = options.destinationFile;\n }\n if (!options.headers[\"Content-Type\"]) {\n options.headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal: options.signal,\n onUploadProgress: options.onUploadProgress,\n headers: options.headers,\n \"axios-retry\": {\n retries: options.retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3),\n retryCondition(error) {\n if (error.status === 507) {\n return false;\n }\n if (error.status === 423) {\n return true;\n }\n return isNetworkOrIdempotentRequestError(error);\n },\n onRetry: options.onUploadRetry\n }\n });\n}\nconst getChunk = function(file, start, length) {\n if (start === 0 && file.size <= length) {\n return Promise.resolve(new Blob([file], { type: file.type || \"application/octet-stream\" }));\n }\n return Promise.resolve(new Blob([file.slice(start, start + length)], { type: \"application/octet-stream\" }));\n};\nconst initChunkWorkspace = async function(destinationFile = void 0, retries = 5, isPublic = false) {\n let chunksWorkspace;\n if (isPublic) {\n chunksWorkspace = `${getBaseUrl()}/public.php/dav/uploads/${getSharingToken()}`;\n } else {\n chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n }\n const hash = [...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\");\n const tempWorkspace = `web-file-upload-${hash}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n const headers = destinationFile ? { Destination: destinationFile } : void 0;\n await axios.request({\n method: \"MKCOL\",\n url,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst getMaxChunksSize = function(fileSize = void 0) {\n const maxChunkSize = window.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n const minimumChunkSize = Math.max(Number(maxChunkSize), 5 * 1024 * 1024);\n if (fileSize === void 0) {\n return minimumChunkSize;\n }\n return Math.max(minimumChunkSize, Math.ceil(fileSize / 1e4));\n};\nvar Status = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status2[Status2[\"FINISHED\"] = 3] = \"FINISHED\";\n Status2[Status2[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status2[Status2[\"FAILED\"] = 5] = \"FAILED\";\n return Status2;\n})(Status || {});\nclass Upload {\n _source;\n _file;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = 0;\n _controller;\n _response = null;\n constructor(source, chunked = false, size, file) {\n const chunks = Math.min(getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1, 1e4);\n this._source = source;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._file = file;\n this._controller = new AbortController();\n }\n get source() {\n return this._source;\n }\n get file() {\n return this._file;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get startTime() {\n return this._startTime;\n }\n set response(response) {\n this._response = response;\n }\n get response() {\n return this._response;\n }\n get uploaded() {\n return this._uploaded;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(length) {\n if (length >= this._size) {\n this._status = this._isChunked ? 2 : 3;\n this._uploaded = this._size;\n return;\n }\n this._status = 1;\n this._uploaded = length;\n if (this._startTime === 0) {\n this._startTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort();\n this._status = 4;\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst isFileSystemDirectoryEntry = (o) => \"FileSystemDirectoryEntry\" in window && o instanceof FileSystemDirectoryEntry;\nconst isFileSystemFileEntry = (o) => \"FileSystemFileEntry\" in window && o instanceof FileSystemFileEntry;\nconst isFileSystemEntry = (o) => \"FileSystemEntry\" in window && o instanceof FileSystemEntry;\nclass Directory extends File {\n _originalName;\n _path;\n _children;\n constructor(path) {\n super([], basename(path), { type: \"httpd/unix-directory\", lastModified: 0 });\n this._children = /* @__PURE__ */ new Map();\n this._originalName = basename(path);\n this._path = path;\n }\n get size() {\n return this.children.reduce((sum, file) => sum + file.size, 0);\n }\n get lastModified() {\n return this.children.reduce((latest, file) => Math.max(latest, file.lastModified), 0);\n }\n // We need this to keep track of renamed files\n get originalName() {\n return this._originalName;\n }\n get children() {\n return Array.from(this._children.values());\n }\n get webkitRelativePath() {\n return this._path;\n }\n getChild(name) {\n return this._children.get(name) ?? null;\n }\n /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\n */\n async addChild(file) {\n const rootPath = this._path && `${this._path}/`;\n if (isFileSystemFileEntry(file)) {\n file = await new Promise((resolve, reject) => file.file(resolve, reject));\n } else if (isFileSystemDirectoryEntry(file)) {\n const reader = file.createReader();\n const entries = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));\n const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\n return;\n }\n file = file;\n const filePath = file.webkitRelativePath ?? file.name;\n if (!filePath.includes(\"/\")) {\n this._children.set(file.name, file);\n } else {\n if (!filePath.startsWith(this._path)) {\n throw new Error(`File ${filePath} is not a child of ${this._path}`);\n }\n const relPath = filePath.slice(rootPath.length);\n const name = basename(relPath);\n if (name === relPath) {\n this._children.set(name, file);\n } else {\n const base = relPath.slice(0, relPath.indexOf(\"/\"));\n if (this._children.has(base)) {\n await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nvar EtaStatus = /* @__PURE__ */ ((EtaStatus2) => {\n EtaStatus2[EtaStatus2[\"Idle\"] = 0] = \"Idle\";\n EtaStatus2[EtaStatus2[\"Paused\"] = 1] = \"Paused\";\n EtaStatus2[EtaStatus2[\"Running\"] = 2] = \"Running\";\n return EtaStatus2;\n})(EtaStatus || {});\nclass Eta extends TypedEventTarget {\n /** Bytes done */\n _done = 0;\n /** Total bytes to do */\n _total = 0;\n /** Current progress (cached) as interval [0,1] */\n _progress = 0;\n /** Status of the ETA */\n _status = 0;\n /** Time of the last update */\n _startTime = -1;\n /** Total elapsed time for current ETA */\n _elapsedTime = 0;\n /** Current speed in bytes per second */\n _speed = -1;\n /** Expected duration to finish in seconds */\n _eta = Infinity;\n /**\n * Cutoff time for the low pass filter of the ETA.\n * A higher value will consider more history information for calculation,\n * and thus suppress spikes of the speed,\n * but will make the overall resposiveness slower.\n */\n _cutoffTime = 2.5;\n constructor(options = {}) {\n super();\n if (options.start) {\n this.resume();\n }\n if (options.total) {\n this.update(0, options.total);\n }\n this._cutoffTime = options.cutoffTime ?? 2.5;\n }\n /**\n * Add more transferred bytes.\n * @param done Additional bytes done.\n */\n add(done) {\n this.update(this._done + done);\n }\n /**\n * Update the transmission state.\n *\n * @param done The new value of transferred bytes.\n * @param total Optionally also update the total bytes we expect.\n */\n update(done, total) {\n if (this.status !== 2) {\n return;\n }\n if (total && total > 0) {\n this._total = total;\n }\n const deltaDone = done - this._done;\n const deltaTime = (Date.now() - this._startTime) / 1e3;\n this._startTime = Date.now();\n this._elapsedTime += deltaTime;\n this._done = done;\n this._progress = this._done / this._total;\n const historyNeeded = this._cutoffTime + deltaTime;\n if (this._elapsedTime > historyNeeded) {\n const alpha = deltaTime / (deltaTime + 1 / this._cutoffTime);\n const filtered = this._done - deltaDone + (1 - alpha) * deltaDone;\n this._speed = Math.round(filtered / this._elapsedTime);\n } else if (this._speed === -1 && this._elapsedTime > deltaTime) {\n const remaining = this._total - done;\n const eta = remaining / (done / this._elapsedTime);\n if (this._eta !== Infinity || eta <= 2 * this._cutoffTime) {\n this._eta = eta;\n }\n }\n if (this._speed > 0) {\n this._eta = Math.round((this._total - this._done) / this._speed);\n }\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\", { cancelable: false }));\n }\n reset() {\n this._done = 0;\n this._total = 0;\n this._progress = 0;\n this._elapsedTime = 0;\n this._eta = Infinity;\n this._speed = -1;\n this._startTime = -1;\n this._status = 0;\n this.dispatchTypedEvent(\"reset\", new CustomEvent(\"reset\"));\n }\n /**\n * Pause the ETA calculation.\n */\n pause() {\n if (this._status === 2) {\n this._status = 1;\n this._elapsedTime += (Date.now() - this._startTime) / 1e3;\n this.dispatchTypedEvent(\"pause\", new CustomEvent(\"pause\"));\n }\n }\n /**\n * Resume the ETA calculation.\n */\n resume() {\n if (this._status !== 2) {\n this._startTime = Date.now();\n this._status = 2;\n this.dispatchTypedEvent(\"resume\", new CustomEvent(\"resume\"));\n }\n }\n /**\n * Status of the Eta (paused, active, idle).\n */\n get status() {\n return this._status;\n }\n /**\n * Progress (percent done)\n */\n get progress() {\n return Math.round(this._progress * 1e4) / 100;\n }\n /**\n * Estimated time in seconds.\n */\n get time() {\n return this._eta;\n }\n /**\n * Human readable version of the estimated time.\n */\n get timeReadable() {\n if (this._eta === Infinity) {\n return t(\"estimating time left\");\n } else if (this._eta < 10) {\n return t(\"a few seconds left\");\n } else if (this._eta < 60) {\n return n(\"{seconds} seconds left\", \"{seconds} seconds left\", this._eta, { seconds: this._eta });\n }\n const hours = String(Math.floor(this._eta / 3600)).padStart(2, \"0\");\n const minutes = String(Math.floor(this._eta % 3600 / 60)).padStart(2, \"0\");\n const seconds = String(this._eta % 60).padStart(2, \"0\");\n return t(\"{time} left\", { time: `${hours}:${minutes}:${seconds}` });\n }\n /**\n * Transfer speed in bytes per second.\n * Returns `-1` if not yet estimated.\n */\n get speed() {\n return this._speed;\n }\n /**\n * Get the speed in human readable format using file sizes like 10KB/s.\n * Returns the empty string if not yet estimated.\n */\n get speedReadable() {\n return this._speed > 0 ? `${formatFileSize(this._speed, true)}∕s` : \"\";\n }\n}\nvar UploaderStatus = /* @__PURE__ */ ((UploaderStatus2) => {\n UploaderStatus2[UploaderStatus2[\"IDLE\"] = 0] = \"IDLE\";\n UploaderStatus2[UploaderStatus2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n UploaderStatus2[UploaderStatus2[\"PAUSED\"] = 2] = \"PAUSED\";\n return UploaderStatus2;\n})(UploaderStatus || {});\nclass Uploader {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n _customHeaders;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _eta = new Eta();\n _notifiers = [];\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(isPublic = false, destinationFolder) {\n this._isPublic = isPublic;\n this._customHeaders = {};\n if (!destinationFolder) {\n const source = `${davRemoteURL}${davRootPath}`;\n let owner;\n if (isPublic) {\n owner = \"anonymous\";\n } else {\n const user = getCurrentUser()?.uid;\n if (!user) {\n throw new Error(\"User is not logged in\");\n }\n owner = user;\n }\n destinationFolder = new Folder({\n id: 0,\n owner,\n permissions: Permission.ALL,\n root: davRootPath,\n source\n });\n }\n this.destination = destinationFolder;\n logger.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize()\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this._destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(folder) {\n if (!folder || folder.type !== FileType.Folder || !folder.source) {\n throw new Error(\"Invalid destination folder\");\n }\n logger.debug(\"Destination set\", { folder });\n this._destinationFolder = folder;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get registered custom headers for uploads\n */\n get customHeaders() {\n return structuredClone(this._customHeaders);\n }\n /**\n * Set a custom header\n * @param name The header to set\n * @param value The string value\n */\n setCustomHeader(name, value = \"\") {\n this._customHeaders[name] = value;\n }\n /**\n * Unset a custom header\n * @param name The header to unset\n */\n deleteCustomerHeader(name) {\n delete this._customHeaders[name];\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n this._eta.reset();\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\n this._uploadQueue.splice(0, this._uploadQueue.length);\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = 0;\n logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._eta.pause();\n this._jobQueue.pause();\n this._queueStatus = 2;\n this.updateStats();\n logger.debug(\"Uploader paused\");\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._eta.resume();\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n logger.debug(\"Uploader resumed\");\n }\n /**\n * Get the estimation for the uploading time.\n */\n get eta() {\n return this._eta;\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus\n };\n }\n updateStats() {\n const size = this._uploadQueue.map((upload2) => upload2.size).reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map((upload2) => upload2.uploaded).reduce((partialSum, a) => partialSum + a, 0);\n this._eta.update(uploaded, size);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus !== 2) {\n const pending = this._uploadQueue.find(({ status }) => [Status.INITIALIZED, Status.UPLOADING, Status.ASSEMBLING].includes(status));\n if (this._jobQueue.size > 0 || pending) {\n this._queueStatus = 1;\n } else {\n this.eta.reset();\n this._queueStatus = 0;\n }\n }\n }\n addNotifier(notifier) {\n this._notifiers.push(notifier);\n }\n /**\n * Notify listeners of the upload completion\n * @param upload The upload that finished\n */\n _notifyAll(upload2) {\n for (const notifier of this._notifiers) {\n try {\n notifier(upload2);\n } catch (error) {\n logger.warn(\"Error in upload notifier\", { error, source: upload2.source });\n }\n }\n }\n /**\n * Uploads multiple files or folders while preserving the relative path (if available)\n * @param {string} destination The destination path relative to the root folder. e.g. /foo/bar (a file \"a.txt\" will be uploaded then to \"/foo/bar/a.txt\")\n * @param {Array<File|FileSystemEntry>} files The files and/or folders to upload\n * @param {Function} callback Callback that receives the nodes in the current folder and the current path to allow resolving conflicts, all nodes that are returned will be uploaded (if a folder does not exist it will be created)\n * @return Cancelable promise that resolves to an array of uploads\n *\n * @example\n * ```ts\n * // For example this is from handling the onchange event of an input[type=file]\n * async handleFiles(files: File[]) {\n * this.uploads = await this.uploader.batchUpload('uploads', files, this.handleConflicts)\n * }\n *\n * async handleConflicts(nodes: File[], currentPath: string) {\n * const conflicts = getConflicts(nodes, this.fetchContent(currentPath))\n * if (conflicts.length === 0) {\n * // No conflicts so upload all\n * return nodes\n * } else {\n * // Open the conflict picker to resolve conflicts\n * try {\n * const { selected, renamed } = await openConflictPicker(currentPath, conflicts, this.fetchContent(currentPath), { recursive: true })\n * return [...selected, ...renamed]\n * } catch (e) {\n * return false\n * }\n * }\n * }\n * ```\n */\n batchUpload(destination, files, callback) {\n if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\n try {\n const client = davGetClient(this.root, this._customHeaders);\n const promise = this.uploadDirectory(destination, rootFolder, callback, client);\n onCancel(() => promise.cancel());\n const uploads = await promise;\n upload2.status = Status.FINISHED;\n resolve(uploads);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n logger.info(\"Upload cancelled by user\", { error });\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(upload2);\n this.updateStats();\n }\n });\n }\n /**\n * Helper to create a directory wrapped inside an Upload class\n * @param destination Destination where to create the directory\n * @param directory The directory to create\n * @param client The cached WebDAV client\n */\n createDirectory(destination, directory, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n const rootPath = `${this.root.replace(/\\/$/, \"\")}/${folderPath.replace(/^\\//, \"\")}`;\n if (!directory.name) {\n throw new Error(\"Can not create empty directory\");\n }\n const currentUpload = new Upload(rootPath, false, 0, directory);\n this._uploadQueue.push(currentUpload);\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n currentUpload.signal.addEventListener(\"abort\", () => reject(t(\"Upload has been cancelled\")));\n await this._jobQueue.add(async () => {\n currentUpload.status = Status.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n currentUpload.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n currentUpload.status = Status.FINISHED;\n resolve(currentUpload);\n } else {\n currentUpload.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(currentUpload);\n this.updateStats();\n }\n });\n });\n }\n // Helper for uploading directories (recursively)\n uploadDirectory(destination, directory, callback, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n const selectedForUpload = await callback(directory.children, folderPath);\n if (selectedForUpload === false) {\n logger.debug(\"Upload canceled by user\", { directory });\n reject(new UploadCancelledError(\"Conflict resolution cancelled by user\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\n resolve([]);\n return;\n }\n const directories = [];\n const uploads = [];\n abort.signal.addEventListener(\"abort\", () => {\n directories.forEach((upload2) => upload2.cancel());\n uploads.forEach((upload2) => upload2.cancel());\n });\n logger.debug(\"Start directory upload\", { directory });\n try {\n if (directory.name) {\n uploads.push(this.createDirectory(destination, directory, client));\n await uploads.at(-1);\n }\n for (const node of selectedForUpload) {\n if (node instanceof Directory) {\n directories.push(this.uploadDirectory(folderPath, node, callback, client));\n } else {\n uploads.push(this.upload(`${folderPath}/${node.name}`, node));\n }\n }\n const resolvedUploads = await Promise.all(uploads);\n const resolvedDirectoryUploads = await Promise.all(directories);\n resolve([resolvedUploads, ...resolvedDirectoryUploads].flat());\n } catch (e) {\n abort.abort(e);\n reject(e);\n }\n });\n }\n /**\n * Upload a file to the given path\n * @param {string} destination the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File|FileSystemFileEntry} fileHandle the file to upload\n * @param {string} root the root folder to upload to\n * @param retries number of retries\n */\n upload(destination, fileHandle, root, retries = 5) {\n root = root || this.root;\n const destinationPath = `${root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const { origin } = new URL(destinationPath);\n const encodedDestinationFile = origin + encodePath(destinationPath.slice(origin.length));\n this.eta.resume();\n logger.debug(`Uploading ${fileHandle.name} to ${encodedDestinationFile}`);\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n if (isFileSystemFileEntry(fileHandle)) {\n fileHandle = await new Promise((resolve2) => fileHandle.file(resolve2, reject));\n }\n const file = fileHandle;\n const supportsPublicChunking = getCapabilities().dav?.public_shares_chunking ?? false;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic && !supportsPublicChunking || maxChunkSize === 0 || \"size\" in file && file.size < maxChunkSize;\n const upload2 = new Upload(destinationPath, !disabledChunkUpload, file.size, file);\n this._uploadQueue.push(upload2);\n this.updateStats();\n onCancel(upload2.cancel);\n if (!disabledChunkUpload) {\n logger.debug(\"Initializing chunked upload\", { file, upload: upload2 });\n const tempUrl = await initChunkWorkspace(encodedDestinationFile, retries, this._isPublic);\n const chunksQueue = [];\n for (let chunk = 0; chunk < upload2.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload2.size);\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n const request2 = () => {\n let chunkBytes = 0;\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n {\n signal: upload2.signal,\n destinationFile: encodedDestinationFile,\n retries,\n onUploadProgress: ({ bytes }) => {\n const progressBytes = bytes * 0.9;\n chunkBytes += progressBytes;\n upload2.uploaded += progressBytes;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded -= chunkBytes;\n chunkBytes = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n }\n }\n ).then(() => {\n upload2.uploaded += bufferEnd - bufferStart - chunkBytes;\n this.updateStats();\n }).catch((error) => {\n if (error?.response?.status === 507) {\n logger.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status.FAILED;\n throw error;\n }\n if (!isCancel(error)) {\n logger.error(`Chunk ${chunk + 1} ${bufferStart} - ${bufferEnd} uploading failed`, { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request2));\n }\n const request = async () => {\n try {\n await Promise.all(chunksQueue);\n upload2.status = Status.ASSEMBLING;\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n upload2.status = Status.FINISHED;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n upload2.status = Status.FAILED;\n reject(t(\"Failed to assemble the chunks together\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n } finally {\n this._notifyAll(upload2);\n }\n };\n this._jobQueue.add(request);\n } else {\n logger.debug(\"Initializing regular upload\", { file, upload: upload2 });\n const blob = await getChunk(file, 0, upload2.size);\n const request = async () => {\n try {\n upload2.response = await uploadData(\n encodedDestinationFile,\n blob,\n {\n signal: upload2.signal,\n onUploadProgress: ({ bytes }) => {\n upload2.uploaded += bytes * 0.9;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"Content-Type\": file.type\n }\n }\n );\n upload2.uploaded = upload2.size;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(t(\"Failed to upload the file\"));\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n /**\n * Create modification time headers if valid value is available.\n * It can be invalid on Android devices if SD cards with NTFS / FAT are used,\n * as those files might use the NT epoch for time so the value will be negative.\n *\n * @param file The file to upload\n */\n _mtimeHeader(file) {\n const mtime = Math.floor(file.lastModified / 1e3);\n if (mtime > 0) {\n return { \"X-OC-Mtime\": mtime };\n }\n return {};\n }\n}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$4 = {\n name: \"CancelIcon\",\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};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\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};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\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};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\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};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\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 null\n);\nconst IconUpload = __component__$1.exports;\nfunction showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-BYpqWa7P.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\n },\n (...rest) => {\n const [{ skip, rename }] = rest;\n if (skip) {\n resolve(false);\n } else if (rename) {\n resolve(rename);\n } else {\n reject();\n }\n }\n );\n return promise;\n}\nfunction hasConflict(files, content) {\n return getConflicts(files, content).length > 0;\n}\nfunction getConflicts(files, content) {\n const contentNames = content.map((node) => node.basename);\n const conflicts = files.filter((node) => {\n const name = \"basename\" in node ? node.basename : node.name;\n return contentNames.indexOf(name) !== -1;\n });\n return conflicts;\n}\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(path).catch(() => []);\n const conflicts = getConflicts(nodes, content);\n if (conflicts.length > 0) {\n const { selected, renamed } = await openConflictPicker(path, conflicts, content, { recursive: true });\n nodes = [\n ...nodes.filter((node) => !conflicts.includes(node)),\n ...selected,\n ...renamed\n ];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n validateFilename(file.name);\n filesToUpload.push(file);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n logger.error(`Unexpected error while validating ${file.name}`, { error });\n throw error;\n }\n let newName = await showInvalidFilenameDialog(error);\n if (newName !== false) {\n newName = getUniqueName(newName, nodes.map((node) => node.name));\n Object.defineProperty(file, \"name\", { value: newName });\n filesToUpload.push(file);\n }\n }\n }\n if (filesToUpload.length === 0 && nodes.length > 0) {\n const folder = basename(path);\n showInfo(\n folder ? t('Upload of \"{folder}\" has been skipped', { folder }) : t(\"Upload has been skipped\")\n );\n }\n return filesToUpload;\n } catch (error) {\n logger.debug(\"Upload has been cancelled\", { error });\n showWarning(t(\"Upload has been cancelled\"));\n return false;\n }\n };\n}\nconst _sfc_main = defineComponent({\n name: \"UploadPicker\",\n components: {\n IconCancel,\n IconFolderUpload,\n IconPlus,\n IconUpload,\n NcActionButton,\n NcActionCaption,\n NcActionSeparator,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcProgressBar\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the \"new\"-menu for this UploadPicker instance\n */\n noMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Make the \"New\"-button primary color.\n */\n primary: {\n type: Boolean,\n default: false\n },\n destination: {\n type: Folder,\n default: void 0\n },\n allowFolders: {\n type: Boolean,\n default: false\n },\n /**\n * List of file present in the destination folder\n * It is also possible to provide a function that takes a relative path to the current directory and returns the content of it\n * Note: If a function is passed it should return the current base directory when no path or an empty is passed\n */\n content: {\n type: [Array, Function],\n default: () => []\n },\n /**\n * Overwrite forbidden characters (by default the capabilities of the server are used)\n * @deprecated Deprecated and will be removed in the next major version\n */\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n setup() {\n return {\n t,\n // non reactive data / properties\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`\n };\n },\n data() {\n return {\n newFileMenuEntries: [],\n openedMenu: false,\n uploadManager: getUploader()\n };\n },\n computed: {\n menuEntriesUpload() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.UploadFromDevice);\n },\n menuEntriesNew() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.CreateNew);\n },\n menuEntriesOther() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.Other);\n },\n /**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\n canUploadFolders() {\n return this.allowFolders && \"webkitdirectory\" in document.createElement(\"input\");\n },\n queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue.some((upload2) => upload2.status === Status.FAILED);\n },\n isAssembling() {\n return this.queue.some((upload2) => upload2.status === Status.ASSEMBLING);\n },\n isUploading() {\n return this.queue.some((upload2) => upload2.status !== Status.CANCELLED);\n },\n isOnlyAssembling() {\n return this.isAssembling && this.queue.every((upload2) => (\n // ignore empty uploads or meta uploads\n upload2.size === 0 || upload2.status === Status.ASSEMBLING || upload2.status === Status.FINISHED\n ));\n },\n isPaused() {\n return this.uploadManager.info?.status === UploaderStatus.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\n }\n },\n watch: {\n allowFolders: {\n immediate: true,\n handler() {\n if (typeof this.content !== \"function\" && this.allowFolders) {\n logger.error(\"[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function\");\n }\n }\n },\n destination(destination) {\n this.setDestination(destination);\n },\n isPaused(isPaused) {\n if (isPaused) {\n this.$emit(\"paused\", this.queue);\n } else {\n this.$emit(\"resumed\", this.queue);\n }\n }\n },\n beforeMount() {\n if (this.destination) {\n this.setDestination(this.destination);\n }\n this.uploadManager.addNotifier(this.onUploadCompletion);\n useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n etaTimeAndSpeed() {\n const speed = this.uploadManager.eta.speedReadable;\n if (speed) {\n return `${this.uploadManager.eta.timeReadable} (${speed})`;\n }\n return this.uploadManager.eta.timeReadable;\n },\n /**\n * Handle clicking a new-menu entry\n * @param entry The entry that was clicked\n */\n async onClick(entry) {\n entry.handler(\n this.destination,\n await this.getContent().catch(() => [])\n );\n },\n /**\n * Trigger file picker\n * @param uploadFolders Upload folders\n */\n onTriggerPick(uploadFolders = false) {\n const input = this.$refs.input;\n if (this.canUploadFolders) {\n input.webkitdirectory = uploadFolders;\n }\n this.$nextTick(() => input.click());\n },\n /**\n * Helper for backwards compatibility that queries the content of the current directory\n * @param path The current path\n */\n async getContent(path) {\n return Array.isArray(this.content) ? this.content : await this.content(path);\n },\n /**\n * Start uploading\n */\n async onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n try {\n await this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent));\n } catch (error) {\n logger.debug(\"Error while uploading\", { error });\n } finally {\n this.resetForm();\n }\n },\n resetForm() {\n const form = this.$refs.form;\n form?.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((upload2) => {\n upload2.cancel();\n });\n this.resetForm();\n },\n setDestination(destination) {\n if (!this.destination) {\n logger.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = destination;\n this.newFileMenuEntries = getNewFileMenuEntries(destination);\n },\n onUploadCompletion(upload2) {\n if (upload2.status === Status.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.destination ? _c(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": _vm.isUploading, \"upload-picker--paused\": _vm.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [!_vm.haveMenu ? _c(\"NcButton\", { attrs: { \"aria-label\": _vm.buttonLabel, \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }, !_vm.isUploading ? { key: \"default\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.buttonLabel) + \" \")];\n }, proxy: true } : null], null, true) }) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.buttonLabel, \"open\": _vm.openedMenu, \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Upload from device\") } }), _c(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"close-after-click\": true }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconUpload\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 337456192) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload files\")) + \" \")]), _vm.canUploadFolders ? _c(\"NcActionButton\", { attrs: { \"close-after-click\": \"\", \"data-cy-upload-picker-add-folders\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-folder\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick(true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconFolderUpload\", { staticStyle: { \"color\": \"var(--color-primary-element)\" }, attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1037549157) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload folders\")) + \" \")]) : _vm._e(), !_vm.noMenu ? _vm._l(_vm.menuEntriesUpload, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n }) : _vm._e(), !_vm.noMenu && _vm.menuEntriesNew.length > 0 ? [_c(\"NcActionSeparator\"), _c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Create new\") } }), _vm._l(_vm.menuEntriesNew, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e(), !_vm.noMenu && _vm.menuEntriesOther.length > 0 ? [_c(\"NcActionSeparator\"), _vm._l(_vm.menuEntriesOther, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e()], 2), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [_c(\"NcProgressBar\", { attrs: { \"aria-label\": _vm.t(\"Upload progress\"), \"aria-describedby\": _vm.progressTimeId, \"data-cy-upload-picker-progress\": \"\", \"error\": _vm.hasFailure, \"value\": _vm.uploadManager.eta.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId, \"data-cy-upload-picker-progress-label\": \"\" } }, [_vm.isPaused ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"paused\")) + \" \")]) : _vm.isOnlyAssembling ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"assembling\")) + \" \")]) : _c(\"span\", { attrs: { \"title\": _vm.etaTimeAndSpeed() } }, [_vm._v(\" \" + _vm._s(_vm.uploadManager.eta.timeReadable) + \" \"), _vm.uploadManager.eta.speedReadable && _vm.uploadManager.eta.time >= 60 ? _c(\"span\", [_vm._v(\" (\" + _vm._s(_vm.uploadManager.eta.speedReadable) + \") \")]) : _vm._e()])])], 1), _vm.isUploading && !_vm.isOnlyAssembling ? _c(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.t(\"Cancel uploads\"), \"data-cy-upload-picker-cancel\": \"\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCancel\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 3076329829) }) : _vm._e(), _c(\"input\", { ref: \"input\", staticClass: \"hidden-visually\", attrs: { \"accept\": _vm.accept?.join?.(\", \"), \"multiple\": _vm.multiple, \"data-cy-upload-picker-input\": \"\", \"type\": \"file\" }, on: { \"change\": _vm.onPick } })], 1) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"12e6e354\"\n);\nconst UploadPicker = __component__.exports;\nfunction getUploader(isPublic = isPublicShare(), forceRecreate = false) {\n if (forceRecreate || window._nc_uploader === void 0) {\n window._nc_uploader = new Uploader(isPublic);\n }\n return window._nc_uploader;\n}\nfunction upload(destinationPath, file) {\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-BvM7ZujP.mjs\"));\n return new Promise((resolve, reject) => {\n const picker = new Vue({\n name: \"ConflictPickerRoot\",\n render: (h) => h(ConflictPicker, {\n props: {\n dirname,\n conflicts,\n content,\n recursiveUpload: options?.recursive === true\n },\n on: {\n submit(results) {\n resolve(results);\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n },\n cancel(error) {\n reject(error ?? new Error(\"Canceled\"));\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n }\n }\n })\n });\n picker.$mount();\n document.body.appendChild(picker.$el);\n });\n}\nexport {\n EtaStatus as E,\n Status as S,\n UploadPicker as U,\n isFileSystemFileEntry as a,\n n as b,\n getConflicts as c,\n uploadConflictHandler as d,\n Upload as e,\n Uploader as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemEntry as i,\n UploaderStatus as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\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=\" + {\"640\":\"b2fa23a809053c6305c5\",\"1656\":\"05d90ab05fafdbaeed35\",\"3485\":\"b3e801849a79b5a466ec\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"8dfb2392d7107957a510\",\"7432\":\"126e4e5eedf7af9a92fc\",\"7807\":\"382c331365e38d2fb775\"}[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 = 2882;","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\t2882: 0,\n\t5810: 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__(10673)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","initialUserConfig","loadState","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","show_mime_column","show_dialog_file_extension","useUserConfigStore","defineStore","userConfig","ref","subscribe","_ref","key","value","set","onUpdate","update","async","getCurrentUser","axios","put","generateUrl","emit","getPinia","window","_nc_files_pinia","createPinia","originalLocation","Column","title","t","render","node","parseOriginalLocation","span","document","createElement","textContent","sort","nodeA","nodeB","locationA","locationB","localeCompare","getLanguage","getCanonicalLocale","numeric","usage","deletedBy","userId","displayName","label","parseDeletedBy","Vue","extend","NcUserBubble","propsData","size","user","undefined","$mount","$el","deletedByA","deletedbyALabel","deletedByB","deletedByBLabel","deleted","deletionTime","attributes","mtime","getTime","formatter","Intl","DateTimeFormat","dateStyle","timeStyle","timestamp","Date","format","formatRelativeTime","ignoreSeconds","deletionTimeA","path","stringOrNull","dir","dirname","replace","currentUserId","uid","attribute","String","rootPath","client","davGetClient","data","getDavNameSpaces","getDavProperties","resultToNode","stat","davResultToNode","previewUrl","fileid","TRASHBIN_VIEW_ID","View","name","caption","emptyTitle","emptyCaption","icon","svgDelete","order","sticky","defaultSortKey","columns","getContents","arguments","length","contents","getDirectoryContents","details","includeSelf","map","folder","splice","findIndex","isTrashbinEnabled","getCapabilities","files","undelete","canUnshareOnly","nodes","every","canDisconnectOnly","view","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","askConfirmation","message","n","count","Promise","resolve","OC","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","cancel","decision","deleteNode","delete","encodedSource","getLoggerBuilder","setApp","detectUser","build","queue","PQueue","concurrency","action","FileAction","iconSvgInline","CloseSvg","enabled","allow_delete","permissions","permission","Permission","DELETE","exec","isCalledFromEventListener","Error","stack","toLocaleLowerCase","includes","showInfo","error","logger","source","execBatch","all","promises","add","shouldFavorite","favorite","favoriteNode","willFavorite","url","encodePath","post","tags","TAG_FAVORITE","StarOutlineSvg","StarSvg","isPublicShare","root","startsWith","NONE","PencilSvg","Boolean","InformationSvg","OCA","Files","Sidebar","file","debug","setActiveTab","open","OCP","Router","goToRoute","query","opendetails","useActiveStore","store","state","_initialized","activeNode","activeView","activeAction","actions","setActiveNode","this","clearActiveNode","onDeletedNode","setActiveAction","clearActiveAction","onChangedView","activeStore","navigation","getNavigation","active","addEventListener","event","detail","executeAction","currentDir","currentNode","currentView","status","NodeStatus","LOADING","success","showSuccess","showError","emits","props","fillColor","default","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","throttle","delay","callback","options","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","Array","_key","self","elapsed","now","apply","clear","setTimeout","_ref2$upcomingOnly","upcomingOnly","components","ChartPie","NcAppNavigationItem","NcProgressBar","loadingStorageStats","storageStats","computed","storageStatsTitle","usedQuotaByte","formatFileSize","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","mounted","free","showStorageFullWarning","methods","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","response","get","translate","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","stopPropagation","preventDefault","slot","Math","min","el","Function","required","appendChild","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcInputField","Setting","setup","userConfigStore","isSystemtagsEnabled","systemtags","settings","Settings","webdavUrl","generateRemoteUrl","encodeURIComponent","webdavDocs","appPasswordUrl","webdavUrlCopied","enableGridView","created","useHotKey","showKeyboardShortcuts","stop","prevent","forEach","setting","beforeDestroy","close","onClose","setConfig","copyCloudId","querySelector","select","navigator","clipboard","writeText","$nextTick","getElementById","scrollIntoView","behavior","inline","folder_tree","_l","target","scopedSlots","_u","fn","proxy","useNavigation","_loaded","views","shallowRef","onUpdateActive","onUpdateViews","triggerRef","onMounted","onUnmounted","removeEventListener","initialViewConfig","useViewConfigStore","viewConfigs","viewId","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","defineComponent","Fragment","NcIconSvgWrapper","parent","Object","level","viewConfigStore","currentViews","values","reduce","acc","filter","params","style","hasChildViews","useExactRouteMatching","generateToNavigation","isExpanded","expanded","onOpen","loadChildViews","filterView","viewMap","fromEntries","entries","_views","_setupProxy","loading","iconClass","loaded","staticStyle","FilenameFilter","FileListFilter","constructor","super","_defineProperty","queryParts","searchQuery","split","displayname","part","reset","updateQuery","trim","filterUpdated","chips","text","onclick","updateChips","dispatchTypedEvent","CustomEvent","isFileListFilterWithUi","useFiltersStore","filters","activeChips","flat","sortedFilters","a","b","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","removeFilter","filterId","index","getFileListFilters","collator","Collator","IconCog","FilesNavigationItem","NavigationQuota","NcAppNavigation","NcAppNavigationList","NcAppNavigationSearch","SettingsModal","filtersStore","filenameFilter","registerFileListFilter","unregisterFileListFilter","watchThrottled","useFilenameFilter","settingsOpened","currentViewId","$route","compare","watch","newView","oldView","find","showView","to","loadExpandedViews","_ref2","viewsToLoad","_ref3","config","_ref4","setActive","openSettings","onSettingsClose","model","$$v","expression","getSummaryFor","hidden","fileCount","folderCount","summary","fileSummary","folderSummary","hiddenSummary","join","useFileListHeaders","headers","getFileListHeaders","element","width","observer","ResizeObserver","elements","contentBoxSize","inlineSize","contentRect","updateObserver","body","unobserve","observe","useFileListWidth","readonly","getClient","fetchNode","propfindPayload","getDefaultPropfind","result","getRootPath","usePathsStore","useFilesStore","pathsStore","paths","getters","getPath","service","addPath","payload","deletePath","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldSource","oldPath","oldNode","owner","mime","parentSource","getRoot","getNode","children","Set","_children","fileStore","roots","getNodes","sources","getNodesById","fileId","getNodesByPath","updateNodes","deleteNodes","setRoot","onUpdatedNode","then","onAddFavorite","ourNode","onRemoveFavorite","useRouteParameters","route","$root","_$route","run","assign","$router","currentRoute","afterEach","useRoute","directory","parseInt","isNaN","openFile","openfile","openDetails","useSelectionStore","selected","lastSelection","lastSelectedIndex","selection","setLastIndex","uploader","useUploaderStore","getUploader","Directory","_contents","_computeDirectorySize","lastModified","_computeDirectoryMtime","entry","traverseTree","isFile","reject","readDirectory","dirReader","createReader","getEntries","readEntries","results","createDirectoryIfNotExists","davClient","exists","absolutePath","createDirectory","recursive","davGetDefaultPropfind","resolveConflict","destination","conflicts","basename","uploads","renamed","openConflictPicker","info","console","sharePermissions","MoveCopyAction","canMove","minPermission","ALL","canCopy","JSON","parse","scope","canDownload","CREATE","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","method","overwrite","actionFinished","mode","toast","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","onRemove","hideToast","createLoadingNotification","copySuffix","currentPath","davRootPath","destinationPath","otherNodes","getUniqueName","suffix","ignoreFileExtension","copyFile","controller","AbortController","CancelablePromise","onCancel","abort","contentsResponse","signal","slice","filename","hasConflict","moveFile","parser","DOMParser","parseFromString","isAxiosError","openFilePickerForAction","promise","withResolvers","fileIDs","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","buttons","dirnames","escape","sanitize","CopyIconSvg","disabled","FolderMoveSvg","pick","catch","FilePickerClosed","e","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","warn","getAsFile","showWarning","onDropExternalFiles","uploadDirectoryContents","relativePath","joinPaths","upload","pause","start","errors","allSettled","onDropInternalFiles","isCopy","useDragAndDropStore","dragging","NcBreadcrumbs","NcBreadcrumb","draggingStore","filesStore","selectionStore","uploaderStore","fileListWidth","dirs","sections","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","selectedFiles","draggingFiles","onClick","onDragOver","dataTransfer","ctrlKey","dropEffect","onDrop","canDrop","button","titleForSection","section","ariaForSection","_t","nativeOn","TrayArrowDownIcon","currentFolder","dragover","canUpload","isQuotaExceeded","cantUploadLabel","resetDragOver","debounce","mainContent","onDragLeave","onContentDrop","isForeignFile","types","currentTarget","contains","relatedTarget","lastUpload","findLast","UploadStatus","FAILED","webkitRelativePath","location","directives","rawName","header","updated","$refs","mount","useActionsMenuStore","opened","useRenamingStore","renamingNode","newNodeName","isRenaming","$reset","rename","newName","oldName","oldExtension","extname","newExtension","spawnDialog","defineAsyncComponent","useNewExtension","showFileExtensionDialog","oldEncodedSource","Destination","Overwrite","updateRootElement","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","isValidMenu","onBackToMenuClick","menuAction","focus","ArrowLeftIcon","CustomElementRender","NcActionButton","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","gridMode","filesListWidth","inject","isActive","isLoading","enabledInlineActions","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","topActionsIds","openedMenu","getBoundariesElement","onKeyDown","actionDisplayName","isLoadingAction","onActionClick","onMenuClose","onMenuClosed","refInFor","keyboardStore","altKey","metaKey","shiftKey","onEvent","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","end","max","filesToSelect","resetSelection","indexOf","_k","keyCode","FileMultipleIcon","FolderIcon","isSingleNode","isSingleFolder","totalSize","total","previewImg","preview","parentNode","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","getFileActions","NcFile","Node","isMtimeAvailable","compact","provide","defaultFileAction","uniqueId","str","hash","i","charCodeAt","hashCode","extension","renamingStore","isRenamingSmallScreen","currentFileId","isFailedSource","canDrag","UPDATE","actionsMenuStore","toString","getDate","crtime","mtimeOpacity","maxOpacityTime","timeDiff","opacityTime","color","round","newSource","resetState","closest","removeProperty","onRightClick","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragStart","clearData","image","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","getFilenameValidity","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","NcTextField","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","tag","domProps","setAttribute","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","isPublic","publicSharingToken","getSharingToken","backgroundFailed","backgroundLoaded","isFavorite","cropPreviews","URL","origin","href","token","searchParams","etag","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isMimeAvailable","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","MimeTypeList","names","baseType","ext","toUpperCase","sizeOpacity","pow","triggerDefaultAction","_g","column","inheritAttrs","_defineComponent","__name","__props","filterStore","visualFilters","filterElements","watchEffect","__sfc","NcAvatar","NcChip","_setup","chip","classForColumn","mapState","sortingMode","sorting_mode","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","checked","isAllSelected","indeterminate","isSomeSelected","selectedNodes","isNoneSelected","onToggleAll","ariaSortForMode","inlineActions","childrenActionsIds","menuActions","areSomeNodesLoading","selectionSources","$set","failedSources","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","floor","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","updateHeightVariables","onScroll","before","footer","disconnect","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","FileListFilters","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","FileEntry","FileEntryGrid","openFileId","cantUpload","defaultCaption","scrollToFile","handleOpenFile","openSidebarForFile","unselectFile","onSidebarClosed","unsubscribe","defaultAction","at","tableElement","table","tableTop","tableBottom","nextIndex","nextNode","isSharingEnabled","files_sharing","BreadCrumbs","DragAndDropNotice","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","forbiddenCharacters","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContents","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sortFoldersFirst","sortingOrder","isEmptyDir","isRefreshing","toPreviousDir","shareTypesAttributes","shareButtonLabel","shareButtonType","User","gridViewButtonLabel","canShare","SHARE","showCustomEmptyView","emptyView","enabledFileListActions","enabledActions","getFileListActions","toSorted","show","customEmptyView","fetchContent","newDir","oldDir","filesListVirtual","filterDirContent","onNodeDeleted","unmounted","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","getElementsByTagName","openSharingSidebar","toggleGridView","execFileListAction","NcContent","FilesList","Navigation","use","originalPush","prototype","args","call","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","_len2","_key2","router","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","stringify","beforeEach","from","next","parentIntercept","fromDir","toDir","fromSource","RouterService","_router","goTo","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","renameAction","favoriteAction","deleteAction","parentDir","alt","old","new","_settings","register","_name","_el","_open","_close","FilesApp","pinia","NewMenuEntryCategory","NewMenuEntryCategory2","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","context","DefaultType2","_action","validateAction","destructive","_nc_fileactions","_nc_filelistactions","_nc_filelistheader","InvalidFilenameErrorReason2","cause","capabilities","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","basename2","substring","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","otherNames","opts","n2","i2","humanList","humanListBinary","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","toFixed","parseFloat","toLocaleString","toISOString","sortingOptions","collection","identifiers2","orders","sorting","_","a2","b2","identifier","orderBy","v","lastIndexOf","_currentView","search","remove","_nc_navigation","_column","isValidColumn","getDefaultExportFromCjs","x","__esModule","hasOwnProperty","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","merge","arrayMode","len","getValue","isName","string","getAllMatches","regex","matches","allmatches","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","isArray","pattern","test","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","node2json","requireNode2json","compress","arr","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","val","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","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","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","fromCharCode","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","jArray","fxpExports","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","L","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","_view","isValidView","TypeError","jsonObject","toLowerCase","isSvg","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","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","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","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","version","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","valid","throwErrors","er","requireParse","requireValid","major_1","hasRequiredMajor","requireMajor","ProxyBus","bus","bus2","getVersion","SimpleBus","handlers","Map","h2","e2","Proxy","_eventBus","_nc_event_bus","_nc_filelist_filters","has","getNewFileMenuEntries","_nc_newfilemenu","sensitivity","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","UploadCancelledError","uploadData","uploadData2","uploadOptions","onUploadProgress","onUploadRetry","retries","Blob","destinationFile","request","retryDelay","retryCount","retryCondition","onRetry","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","o","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","getChild","addChildren","FileSystemDirectoryEntry","reader","filePath","relPath","Eta","_done","_total","_progress","_elapsedTime","_speed","_eta","Infinity","_cutoffTime","resume","cutoffTime","done","deltaDone","deltaTime","historyNeeded","alpha","filtered","eta","cancelable","progress","time","timeReadable","seconds","hours","padStart","minutes","speed","speedReadable","UploaderStatus","UploaderStatus2","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","upload2","partialSum","pending","INITIALIZED","UPLOADING","ASSEMBLING","addNotifier","notifier","_notifyAll","batchUpload","files2","rootFolder","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","supportsPublicChunking","dav","public_shares_chunking","disabledChunkUpload","blob","bytes","_mtimeHeader","tempUrl","chunksWorkspace","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","request2","chunkBytes","progressBytes","onIdle","normalizeComponent","scriptExports","render6","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","IconCancel","IconFolderUpload","IconPlus","IconUpload","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","content","getConflicts","contentNames","NcActionCaption","accept","multiple","noMenu","primary","allowFolders","progressTimeId","newFileMenuEntries","uploadManager","menuEntriesUpload","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","hasFailure","isAssembling","isUploading","isOnlyAssembling","isPaused","PAUSED","buttonLabel","haveMenu","setDestination","onUploadCompletion","etaTimeAndSpeed","onTriggerPick","uploadFolders","webkitdirectory","click","onPick","contentsCallback","filesToUpload","defineProperty","resetForm","form","forceRecreate","_nc_uploader","ConflictPicker","picker","h","recursiveUpload","submit","$destroy","removeChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","r","getter","d","definition","enumerable","f","chunkId","u","g","globalThis","prop","l","script","needAttach","scripts","s","getAttribute","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","head","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ 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 5ffe42af6a3..ed96f744082 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(7701)]).then(r.bind(r,66267))).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="+{640:"b2fa23a809053c6305c5",857:"e91c54a0a2f8bb5ed755",5771:"a4e2a98efcfb7393c5bd",5810:"8dfb2392d7107957a510",7432:"126e4e5eedf7af9a92fc",7701:"f66f78d001307622cd06"}[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=451523d55afaac68dec5
\ 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(8708)]).then(r.bind(r,18634))).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="+{640:"b2fa23a809053c6305c5",857:"e91c54a0a2f8bb5ed755",5771:"a4e2a98efcfb7393c5bd",5810:"8dfb2392d7107957a510",7432:"126e4e5eedf7af9a92fc",8708:"5d824d632209307d82c7"}[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=7590745d696b7ed383b9
\ 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 56335a801d6..9d4e512379d 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=451523d55afaac68dec5","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=\" + {\"640\":\"b2fa23a809053c6305c5\",\"857\":\"e91c54a0a2f8bb5ed755\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"8dfb2392d7107957a510\",\"7432\":\"126e4e5eedf7af9a92fc\",\"7701\":\"f66f78d001307622cd06\"}[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=7590745d696b7ed383b9","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=\" + {\"640\":\"b2fa23a809053c6305c5\",\"857\":\"e91c54a0a2f8bb5ed755\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"8dfb2392d7107957a510\",\"7432\":\"126e4e5eedf7af9a92fc\",\"8708\":\"5d824d632209307d82c7\"}[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/l10n/gl.js b/lib/l10n/gl.js index b38c1963b4e..adcd145ae66 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -112,7 +112,7 @@ OC.L10N.register( "Moving a storage (%s) into another storage (%s) is not allowed" : "Non está permitido mover un almacenamento (%s) cara a outro almacenamento (%s)", "Path contains invalid segments" : "A ruta contén segmentos non válidos", "Filename is a reserved word" : "O nome de ficheiro é unha palabra reservada", - "Filename contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto", + "Filename contains at least one invalid character" : "O nome de ficheiro contén algún carácter non aceptado", "Filename is too long" : "O nome de ficheiro é longo de máis", "Empty filename is not allowed" : "Non está permitido deixar baleiro o nome de ficheiro", "App \"%s\" cannot be installed because appinfo file cannot be read." : "Non é posíbel instalar a aplicación «%s» por mor de non poder ler o ficheiro appinfo.", diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index 9c8d0e65999..ea8fc00b36c 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -110,7 +110,7 @@ "Moving a storage (%s) into another storage (%s) is not allowed" : "Non está permitido mover un almacenamento (%s) cara a outro almacenamento (%s)", "Path contains invalid segments" : "A ruta contén segmentos non válidos", "Filename is a reserved word" : "O nome de ficheiro é unha palabra reservada", - "Filename contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto", + "Filename contains at least one invalid character" : "O nome de ficheiro contén algún carácter non aceptado", "Filename is too long" : "O nome de ficheiro é longo de máis", "Empty filename is not allowed" : "Non está permitido deixar baleiro o nome de ficheiro", "App \"%s\" cannot be installed because appinfo file cannot be read." : "Non é posíbel instalar a aplicación «%s» por mor de non poder ler o ficheiro appinfo.", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index abf9785da23..92337e27833 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -61,6 +61,9 @@ OC.L10N.register( "View profile" : "Открыть профиль", "same time" : "в то же время", "_%nh_::_%nh_" : ["%nч","%nч","%nч","%nч"], + "_%nm_::_%nm_" : ["%nм","%nм","%n м","%n м"], + "%s ahead" : "%s вперёд", + "%s behind" : "%s позади", "Local time: %s" : "Местное время: %s", "today" : "сегодня", "tomorrow" : "завтра", @@ -102,6 +105,13 @@ OC.L10N.register( "Invalid path" : "Некорректный путь", "Failed to create file from template" : "Не удалось создать файл на основе шаблона", "Templates" : "Шаблоны", + "Storage %s cannot be moved" : "Хранилище %s не может быть перемещено", + "Moving a share (%s) into a shared folder is not allowed" : "Перемещение общего ресурса (%s) в общую папку запрещено", + "Moving a storage (%s) into a shared folder is not allowed" : "Перемещение хранилища (%s) в общую папку запрещено", + "Moving a share (%s) into another share (%s) is not allowed" : "Перемещение общего ресурса (%s) в другой общий ресурс (%s) запрещено", + "Moving a share (%s) into another storage (%s) is not allowed" : "Перемещение общего ресурса (%s) в другое хранилище (%s) запрещено", + "Moving a storage (%s) into a share (%s) is not allowed" : "Перемещение хранилища (%s) в общий ресурс (%s) запрещено", + "Moving a storage (%s) into another storage (%s) is not allowed" : "Перемещение хранилища (%s) в другое хранилище (%s) запрещено", "Path contains invalid segments" : "Путь содержит недопустимые сегменты", "Filename is a reserved word" : "Имя файла - это зарезервированное слово", "Filename contains at least one invalid character" : "Имя файла содержит как минимум один недопустимый символ", @@ -148,6 +158,7 @@ OC.L10N.register( "Oracle connection could not be established" : "Соединение с Oracle не может быть установлено", "Oracle Login and/or password not valid" : "Неверный логин и/или пароль Oracle", "PostgreSQL Login and/or password not valid" : "Неверный логин и/или пароль для PostgreSQL", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X не поддерживается, и %s может работать некорректно на этой платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Кажется что экземпляр этого %s работает в 32-битной среде PHP и в php.ini был настроен open_basedir. Это приведёт к проблемам с файлами более 4 ГБ и настоятельно не рекомендуется.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", @@ -157,13 +168,27 @@ OC.L10N.register( "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд общего доступа %s должен реализовывать интерфейс OCP\\Share_Backend", "Sharing backend %s not found" : "Механизм предоставления общего доступа %s не найден", "Sharing backend for %s not found" : "Не найден механизм предоставления общего доступа для %s ", + "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами", "Open %s" : "Открыть %s", "%1$s via %2$s" : "%1$s через %2$s", + "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:", + "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить", + "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами", "Passwords are enforced for link and mail shares" : "Для общих ссылок и почтовых рассылок применяются пароли", + "Share recipient is not a valid user" : "Получатель общего ресурса — некорректный пользователь", + "Share recipient is not a valid group" : "Получатель общего ресурса — некорректная группа", + "Share recipient should be empty" : "Получатель общего ресурса должен быть пустым", + "Share recipient should not be empty" : "Получатель общего ресурса не должен быть пустым", + "Share recipient is not a valid circle" : "Получатель общего ресурса — некорректный круг", "Unknown share type" : "Общий доступ неизвестного типа", + "Share initiator must be set" : "Должен быть задан инициатор общего ресурса", "Cannot share with yourself" : "Не могу поделиться с самим собой", + "Shared path must be set" : "Должен быть указан путь к общему ресурсу", + "Shared path must be either a file or a folder" : "Путь должен указывать на файл или папку", "You cannot share your root folder" : "Вы не можете предоставить общий доступ к своей корневой папке", "You are not allowed to share %s" : "Вам не разрешено делиться %s", + "Valid permissions are required for sharing" : "Для общего ресурса необходимы корректные права", + "File shares cannot have create or delete permissions" : "Для файловых общих ресурсов нельзя задавать права доступа на создание или удаление", "Cannot increase permissions of %s" : "Не удалось повысить права доступа %s", "Shares need at least read permissions" : "Общим ресурсам требуются как минимум разрешения на чтение", "Files cannot be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним", @@ -178,6 +203,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" : "Невозможно поделиться с владельцем общего доступа", @@ -189,6 +215,7 @@ OC.L10N.register( "Cannot disable sending the password by Talk without setting a new password" : "Невозможно отключить отправку пароля по телефону без установки нового пароля", "Share provider does not support accepting" : "Поставщик общего доступа не поддерживает прием", "Cannot change target of link share" : "Невозможно изменить цель публикации ссылки", + "Invalid share recipient" : "Некорректный получатель общего ресурса", "Group \"%s\" does not exist" : "Группа \"%s\" не существует", "The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.", "The requested share comes from a disabled user" : "Запрос на общий доступ поступает от отключенного пользователя", @@ -248,6 +275,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" : "Логин не должен состоять только из точек", + "Username is too long" : "Имя пользователя слишком длинное", "Login is invalid because files already exist for this user" : "Логин недействителен, поскольку файлы для этого пользователя уже существуют", "Account disabled" : "Учетная запись отключена", "Login canceled by app" : "Вход отменен приложением", @@ -304,10 +332,19 @@ OC.L10N.register( "The audio to transcribe" : "Аудио для расшифровки", "Transcription" : "Транскрипция", "The transcribed text" : "Расшифрованный текст", + "Chat with an agent" : "Чат с агентом", "Chat message" : "Сообщение в чате", + "A chat message to send to the agent." : "Сообщение для отправки агенту", "Confirmation" : "Подтверждение", + "Whether to confirm previously requested actions: 0 for denial and 1 for confirmation." : "Подтвердить ранее запрошенные действия: 0 — отказ, 1 — подтверждение.", + "Conversation token" : "Токен беседы", + "A token representing the conversation." : "Токен, представляющий беседу.", "Generated response" : "Сгенерированный ответ", "The response from the chat model." : "Ответ от модели чата.", + "The new conversation token" : "Новый токен беседы", + "Send this along with the next interaction." : "Отправьте его при следующем взаимодействии.", + "Requested actions by the agent" : "Запрошенные действия от агента", + "Actions that the agent would like to carry out in JSON format." : "Действия, которые агент хотел бы выполнить в формате JSON.", "Context write" : "Контекстная запись", "Writes text in a given style based on the provided source material." : "Пишет текст в заданном стиле на основе предоставленного исходного материала.", "Writing style" : "Стиль письма", @@ -318,19 +355,29 @@ OC.L10N.register( "The generated text with content from the source material in the given style" : "Сгенерированный текст с содержимым из исходного материала в заданном стиле", "Emoji generator" : "Генератор Emoji", "Takes text and generates a representative emoji for it." : "Берет текст и генерирует для него репрезентативный смайлик.", + "The text to generate an emoji for" : "Текст для создания эмодзи", + "Generated emoji" : "Созданный эмодзи", + "The generated emoji based on the input text" : "Эмодзи, созданный на основе введённого текста", "Generate image" : "Генерировать изображение", "Generate an image from a text prompt" : "Создайте изображение из текстовой подсказки", + "Prompt" : "Подсказка", "Describe the image you want to generate" : "Опишите изображение, которое вы хотите создать", "Number of images" : "Количество изображений", "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" : "Опишите задачу, которую вы хотите поручить ассистенту, или задайте вопрос", "Generated reply" : "Сгенерированный ответ", "The generated text from the assistant" : "Сгенерированный текст от помощника", "Change Tone" : "Сменить тон", + "Change the tone of a piece of text." : "Изменить тон текста", "Write a text that you want the assistant to rewrite in another tone." : "Напишите текст, чтобы ассистент переписал его в другом тоне.", "Desired tone" : "Желаемый тон", "In which tone should your text be rewritten?" : "В каком тоне следует переписать ваш текст?", @@ -343,7 +390,15 @@ OC.L10N.register( "The history of chat messages before the current message, starting with a message by the user" : "История сообщений в чате до текущего сообщения, начиная с сообщения пользователя", "Response message" : "Ответное сообщение", "The generated response as part of the conversation" : "Сгенерированный ответ в ходе беседы", + "Chat with tools" : "Чат с инструментами", + "Chat with the language model with tool calling support." : "Чат с языковой моделью с поддержкой вызова инструментов.", + "Tool message" : "Сообщение инструмента", + "The result of tool calls in the last interaction" : "Результат вызова инструментов в последнем взаимодействии", + "Available tools" : "Доступные инструменты", + "The available tools in JSON format" : "Доступные инструменты в формате JSON", "The response from the chat model" : "Ответ от чат-модели", + "Tool calls" : "Вызовы инструментов", + "Tools call instructions from the model in JSON format" : "Инструкции по вызову инструментов от модели в формате JSON", "Formalize text" : "Формализовать текст", "Takes a text and makes it sound more formal" : "Берется текст и делает его звучание более формальным", "Write a text that you want the assistant to formalize" : "Напишите текст, который вы хотите, чтобы ассистент оформил официально", @@ -354,7 +409,12 @@ OC.L10N.register( "Original text" : "Оригинальный текст", "The original text to generate a headline for" : "Исходный текст для создания заголовка для", "The generated headline" : "Сгенерированный заголовок", + "Proofread" : "Проверка правописания", + "Proofreads a text and lists corrections" : "Проверяет текст и показывает исправления", "Text" : "Текст", + "The text to proofread" : "Текст для проверки", + "Corrections" : "Исправления", + "The corrections that should be made in your text" : "Исправления, которые следует внести в ваш текст", "Reformulate text" : "Переформулировать текст", "Takes a text and reformulates it" : "Берет текст и переформулирует его", "Write a text that you want the assistant to reformulate" : "Напишите текст, который вы хотите, чтобы ассистент переформулировал", @@ -391,6 +451,7 @@ OC.L10N.register( "Summarizes text by reducing its length without losing key information." : "Обобщает текст, сокращая его длину без потери ключевой информации.", "Extracts topics from a text and outputs them separated by commas." : "Извлекает темы из текста и выводит их через запятую.", "File is currently busy, please try again later" : "Файл в данный момент используется, повторите попытку позже.", - "Cannot download file" : "Не удалось скачать файл" + "Cannot download file" : "Не удалось скачать файл", + "Login is too long" : "Имя пользователя слишком длинное" }, "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/lib/l10n/ru.json b/lib/l10n/ru.json index e34ba41d3b3..590ad80b5b7 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -59,6 +59,9 @@ "View profile" : "Открыть профиль", "same time" : "в то же время", "_%nh_::_%nh_" : ["%nч","%nч","%nч","%nч"], + "_%nm_::_%nm_" : ["%nм","%nм","%n м","%n м"], + "%s ahead" : "%s вперёд", + "%s behind" : "%s позади", "Local time: %s" : "Местное время: %s", "today" : "сегодня", "tomorrow" : "завтра", @@ -100,6 +103,13 @@ "Invalid path" : "Некорректный путь", "Failed to create file from template" : "Не удалось создать файл на основе шаблона", "Templates" : "Шаблоны", + "Storage %s cannot be moved" : "Хранилище %s не может быть перемещено", + "Moving a share (%s) into a shared folder is not allowed" : "Перемещение общего ресурса (%s) в общую папку запрещено", + "Moving a storage (%s) into a shared folder is not allowed" : "Перемещение хранилища (%s) в общую папку запрещено", + "Moving a share (%s) into another share (%s) is not allowed" : "Перемещение общего ресурса (%s) в другой общий ресурс (%s) запрещено", + "Moving a share (%s) into another storage (%s) is not allowed" : "Перемещение общего ресурса (%s) в другое хранилище (%s) запрещено", + "Moving a storage (%s) into a share (%s) is not allowed" : "Перемещение хранилища (%s) в общий ресурс (%s) запрещено", + "Moving a storage (%s) into another storage (%s) is not allowed" : "Перемещение хранилища (%s) в другое хранилище (%s) запрещено", "Path contains invalid segments" : "Путь содержит недопустимые сегменты", "Filename is a reserved word" : "Имя файла - это зарезервированное слово", "Filename contains at least one invalid character" : "Имя файла содержит как минимум один недопустимый символ", @@ -146,6 +156,7 @@ "Oracle connection could not be established" : "Соединение с Oracle не может быть установлено", "Oracle Login and/or password not valid" : "Неверный логин и/или пароль Oracle", "PostgreSQL Login and/or password not valid" : "Неверный логин и/или пароль для PostgreSQL", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X не поддерживается, и %s может работать некорректно на этой платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Кажется что экземпляр этого %s работает в 32-битной среде PHP и в php.ini был настроен open_basedir. Это приведёт к проблемам с файлами более 4 ГБ и настоятельно не рекомендуется.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", @@ -155,13 +166,27 @@ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд общего доступа %s должен реализовывать интерфейс OCP\\Share_Backend", "Sharing backend %s not found" : "Механизм предоставления общего доступа %s не найден", "Sharing backend for %s not found" : "Не найден механизм предоставления общего доступа для %s ", + "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами", "Open %s" : "Открыть %s", "%1$s via %2$s" : "%1$s через %2$s", + "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:", + "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить", + "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами", "Passwords are enforced for link and mail shares" : "Для общих ссылок и почтовых рассылок применяются пароли", + "Share recipient is not a valid user" : "Получатель общего ресурса — некорректный пользователь", + "Share recipient is not a valid group" : "Получатель общего ресурса — некорректная группа", + "Share recipient should be empty" : "Получатель общего ресурса должен быть пустым", + "Share recipient should not be empty" : "Получатель общего ресурса не должен быть пустым", + "Share recipient is not a valid circle" : "Получатель общего ресурса — некорректный круг", "Unknown share type" : "Общий доступ неизвестного типа", + "Share initiator must be set" : "Должен быть задан инициатор общего ресурса", "Cannot share with yourself" : "Не могу поделиться с самим собой", + "Shared path must be set" : "Должен быть указан путь к общему ресурсу", + "Shared path must be either a file or a folder" : "Путь должен указывать на файл или папку", "You cannot share your root folder" : "Вы не можете предоставить общий доступ к своей корневой папке", "You are not allowed to share %s" : "Вам не разрешено делиться %s", + "Valid permissions are required for sharing" : "Для общего ресурса необходимы корректные права", + "File shares cannot have create or delete permissions" : "Для файловых общих ресурсов нельзя задавать права доступа на создание или удаление", "Cannot increase permissions of %s" : "Не удалось повысить права доступа %s", "Shares need at least read permissions" : "Общим ресурсам требуются как минимум разрешения на чтение", "Files cannot be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним", @@ -176,6 +201,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" : "Невозможно поделиться с владельцем общего доступа", @@ -187,6 +213,7 @@ "Cannot disable sending the password by Talk without setting a new password" : "Невозможно отключить отправку пароля по телефону без установки нового пароля", "Share provider does not support accepting" : "Поставщик общего доступа не поддерживает прием", "Cannot change target of link share" : "Невозможно изменить цель публикации ссылки", + "Invalid share recipient" : "Некорректный получатель общего ресурса", "Group \"%s\" does not exist" : "Группа \"%s\" не существует", "The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.", "The requested share comes from a disabled user" : "Запрос на общий доступ поступает от отключенного пользователя", @@ -246,6 +273,7 @@ "A valid Login must be provided" : "Необходимо указать действительный логин для входа в систему", "Login contains whitespace at the beginning or at the end" : "Имя пользователя содержит пробелы в начале или в конце", "Login must not consist of dots only" : "Логин не должен состоять только из точек", + "Username is too long" : "Имя пользователя слишком длинное", "Login is invalid because files already exist for this user" : "Логин недействителен, поскольку файлы для этого пользователя уже существуют", "Account disabled" : "Учетная запись отключена", "Login canceled by app" : "Вход отменен приложением", @@ -302,10 +330,19 @@ "The audio to transcribe" : "Аудио для расшифровки", "Transcription" : "Транскрипция", "The transcribed text" : "Расшифрованный текст", + "Chat with an agent" : "Чат с агентом", "Chat message" : "Сообщение в чате", + "A chat message to send to the agent." : "Сообщение для отправки агенту", "Confirmation" : "Подтверждение", + "Whether to confirm previously requested actions: 0 for denial and 1 for confirmation." : "Подтвердить ранее запрошенные действия: 0 — отказ, 1 — подтверждение.", + "Conversation token" : "Токен беседы", + "A token representing the conversation." : "Токен, представляющий беседу.", "Generated response" : "Сгенерированный ответ", "The response from the chat model." : "Ответ от модели чата.", + "The new conversation token" : "Новый токен беседы", + "Send this along with the next interaction." : "Отправьте его при следующем взаимодействии.", + "Requested actions by the agent" : "Запрошенные действия от агента", + "Actions that the agent would like to carry out in JSON format." : "Действия, которые агент хотел бы выполнить в формате JSON.", "Context write" : "Контекстная запись", "Writes text in a given style based on the provided source material." : "Пишет текст в заданном стиле на основе предоставленного исходного материала.", "Writing style" : "Стиль письма", @@ -316,19 +353,29 @@ "The generated text with content from the source material in the given style" : "Сгенерированный текст с содержимым из исходного материала в заданном стиле", "Emoji generator" : "Генератор Emoji", "Takes text and generates a representative emoji for it." : "Берет текст и генерирует для него репрезентативный смайлик.", + "The text to generate an emoji for" : "Текст для создания эмодзи", + "Generated emoji" : "Созданный эмодзи", + "The generated emoji based on the input text" : "Эмодзи, созданный на основе введённого текста", "Generate image" : "Генерировать изображение", "Generate an image from a text prompt" : "Создайте изображение из текстовой подсказки", + "Prompt" : "Подсказка", "Describe the image you want to generate" : "Опишите изображение, которое вы хотите создать", "Number of images" : "Количество изображений", "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" : "Опишите задачу, которую вы хотите поручить ассистенту, или задайте вопрос", "Generated reply" : "Сгенерированный ответ", "The generated text from the assistant" : "Сгенерированный текст от помощника", "Change Tone" : "Сменить тон", + "Change the tone of a piece of text." : "Изменить тон текста", "Write a text that you want the assistant to rewrite in another tone." : "Напишите текст, чтобы ассистент переписал его в другом тоне.", "Desired tone" : "Желаемый тон", "In which tone should your text be rewritten?" : "В каком тоне следует переписать ваш текст?", @@ -341,7 +388,15 @@ "The history of chat messages before the current message, starting with a message by the user" : "История сообщений в чате до текущего сообщения, начиная с сообщения пользователя", "Response message" : "Ответное сообщение", "The generated response as part of the conversation" : "Сгенерированный ответ в ходе беседы", + "Chat with tools" : "Чат с инструментами", + "Chat with the language model with tool calling support." : "Чат с языковой моделью с поддержкой вызова инструментов.", + "Tool message" : "Сообщение инструмента", + "The result of tool calls in the last interaction" : "Результат вызова инструментов в последнем взаимодействии", + "Available tools" : "Доступные инструменты", + "The available tools in JSON format" : "Доступные инструменты в формате JSON", "The response from the chat model" : "Ответ от чат-модели", + "Tool calls" : "Вызовы инструментов", + "Tools call instructions from the model in JSON format" : "Инструкции по вызову инструментов от модели в формате JSON", "Formalize text" : "Формализовать текст", "Takes a text and makes it sound more formal" : "Берется текст и делает его звучание более формальным", "Write a text that you want the assistant to formalize" : "Напишите текст, который вы хотите, чтобы ассистент оформил официально", @@ -352,7 +407,12 @@ "Original text" : "Оригинальный текст", "The original text to generate a headline for" : "Исходный текст для создания заголовка для", "The generated headline" : "Сгенерированный заголовок", + "Proofread" : "Проверка правописания", + "Proofreads a text and lists corrections" : "Проверяет текст и показывает исправления", "Text" : "Текст", + "The text to proofread" : "Текст для проверки", + "Corrections" : "Исправления", + "The corrections that should be made in your text" : "Исправления, которые следует внести в ваш текст", "Reformulate text" : "Переформулировать текст", "Takes a text and reformulates it" : "Берет текст и переформулирует его", "Write a text that you want the assistant to reformulate" : "Напишите текст, который вы хотите, чтобы ассистент переформулировал", @@ -389,6 +449,7 @@ "Summarizes text by reducing its length without losing key information." : "Обобщает текст, сокращая его длину без потери ключевой информации.", "Extracts topics from a text and outputs them separated by commas." : "Извлекает темы из текста и выводит их через запятую.", "File is currently busy, please try again later" : "Файл в данный момент используется, повторите попытку позже.", - "Cannot download file" : "Не удалось скачать файл" + "Cannot download file" : "Не удалось скачать файл", + "Login is too long" : "Имя пользователя слишком длинное" },"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/tests/enable_all.php b/tests/enable_all.php index b9320fa4edf..f6d549dfd73 100644 --- a/tests/enable_all.php +++ b/tests/enable_all.php @@ -1,6 +1,6 @@ <?php /** - * SPDX-FileCopyrightText: 2016-2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016-2025 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2012-2016 ownCloud, Inc. * SPDX-License-Identifier: AGPL-3.0-or-later */ @@ -8,11 +8,8 @@ require_once __DIR__ . '/../lib/base.php'; function enableApp($app) { - try { - (new \OC_App())->enable($app); - } catch (Exception $e) { - echo $e; - } + (new \OC_App())->enable($app); + echo "Enabled application {$app}\n"; } foreach (new \DirectoryIterator(__DIR__ . '/../apps/') as $file) { |